一條通往另一台電腦的加密隧道
上一篇說到,agent 能在終端機裡自由執行指令,前提是要有一個終端機讓它跑。但那個終端機不必是你手機上的——它可以在你家裡那台一直開著的 Mac mini 上、公司那台工作站上,只要你能連得過去。SSH(Secure Shell)做的就是這件事:在你的裝置和另一台機器之間,開一條加密的隧道,把你打的文字送過去,把對方印出來的文字帶回來,中間經過的任何一個節點都看不懂內容。
為什麼是「另一台機器」,不是雲端服務
網頁版 agent 或雲端 IDE 也能讓你「連上一台機器」,差別在那台機器是誰的。SSH 連的是你自己的機器——你的檔案在那裡、你的 API key 在那裡、你裝過的套件和設好的環境變數全部都在那裡。你不用把任何東西搬到別人的伺服器上,agent 動的每一個位元組,都還是你自己那份,改完之後也留在原地,不需要你事後再同步回來。
金鑰不是比較安全的那個選項,是比較省事的那個
SSH 支援密碼登入,也支援金鑰登入,這兩個常被講成一個要在安全跟方便之間做的取捨——但金鑰其實同時比較安全、又比較省事:一把私鑰留在你的裝置上,一把公鑰放到對方機器,登入時兩把鑰匙互相驗證,你完全不用打字;密碼可以被暴力猜測,金鑰的長度讓那條路實務上行不通。設定一次,之後每次連線都是這個流程,不會隨著時間變得更麻煩。
不需要把電腦「架成伺服器」
很多人聽到 SSH 就想到機房和伺服器機櫃,但你要做的只是打開一個開關——Mac 上是「系統設定 → 一般 → 共享 → 遠端登入」,Linux 上通常是啟動一個叫 sshd 的服務,多數發行版預設就已經裝好。開關打開之後,那台機器本來在做的事一件都不會變,還是你平常那台電腦,只是多了一扇你可以從外面敲的門。
但你關掉手機的那一刻,那條隧道就斷了——agent 也跟著死。除非……