三步搞定免密碼 SSH
"免密碼"SSH 不是沒有安全——是用金鑰登入、不再每次輸密碼。它既更方便也更安全。三步:產生金鑰對、把公鑰複製到伺服器、(可選)關掉密碼登入讓只有金鑰能用。下面是全流程。
第 1 步 —— 產生金鑰對
在你的機器上,建立一把 Ed25519 金鑰(現代、快、安全——見 Ed25519 vs RSA):
ssh-keygen -t ed25519 -C "[email protected]" 按 Enter 接受預設位置。它會問你設個通行密碼(passphrase)——它把磁碟上的私鑰加密。要真正一步登入可以留空,但通行密碼 + ssh-agent 能兼得安全與便利。這會產生兩個檔案:id_ed25519(私鑰——永不外傳)和 id_ed25519.pub(公鑰——放到伺服器上)。
第 2 步 —— 把公鑰複製到伺服器
公鑰那半必須在伺服器的 ~/.ssh/authorized_keys 裡。簡單做法:
ssh-copy-id user@host 它讓你最後輸一次密碼、裝好金鑰。(沒有 ssh-copy-id,或在 Windows?見 完整複製金鑰指南。)現在重新連線——ssh user@host 應該不用密碼就登進去。還要密碼的話,看 SSH 還在要密碼。
第 3 步 —— 關掉密碼登入(可選,推薦)
金鑰登入生效後,你可以徹底停用密碼,讓暴力破解毫無意義。在伺服器 /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes 然後 sudo systemctl restart ssh。重要:斷線前,先在另一個工作階段裡確認金鑰登入可用——否則一個失誤就可能把自己鎖在外面。再配上 停用 root 登入 和 fail2ban,基線就穩了。
為什麼金鑰勝過密碼
金鑰是一個 256 位的祕密,從不傳到伺服器——傳的只是一個簽章——所以線上沒有東西可被釣魚或暴力破解。密碼能被猜;機器人每天用上百萬個密碼轟炸 22 連接埠。只用金鑰認證時,那些嘗試根本不可能成功。更多權衡:SSH 金鑰 vs 密碼。
在手機上免密碼 SSH
同樣的模型在行動端也成立,好的用戶端把它變成一個流程:TermAI 在裝置 Keychain 裡產生 Ed25519 金鑰,一鍵部署到伺服器把公鑰裝進 authorized_keys——第 1、2 步無需終端機。之後你用金鑰連線,不用在觸控螢幕鍵盤上敲密碼。
常見問題
怎麼設定免密碼 SSH?
用 ssh-keygen -t ed25519 產生金鑰,用 ssh-copy-id user@host 把公鑰複製到伺服器,然後重新連線——用金鑰登入、無需密碼。可選地在 sshd_config 裡停用密碼認證。
免密碼 SSH 安全嗎?
比密碼更安全——金鑰從不過網,無法被釣魚或暴力破解。徹底停用密碼認證後,暴力破解嘗試根本不可能成功。
金鑰要設通行密碼嗎?
最好設——它把磁碟上的私鑰加密。用 ssh-agent 讓你每個工作階段只輸一次、仍是一步登入。
停用密碼會把自己鎖在外面嗎?
只有在金鑰登入還沒生效時才會。停用密碼認證前,務必在另一個工作階段裡確認金鑰能登。
快速事實
- 三步:產生金鑰 → 把公鑰複製到伺服器 →(可選)停用密碼認證
- 產生:
ssh-keygen -t ed25519 - 安裝:
ssh-copy-id user@host - 加固:sshd_config 裡
PasswordAuthentication no(先確認金鑰登入可用) - 行動端:一鍵產生+部署(TermAI),然後金鑰登入
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.