教學

如何設定免密碼 SSH(金鑰登入)

免密碼 SSH 是用金鑰而非密碼登入——更方便也更安全。三步:產生金鑰、把公鑰複製到伺服器、(可選)停用密碼登入。

CC Chen Chen· 創始人·2026 年 6 月 24 日·閱讀 6 分鐘

三步搞定免密碼 SSH

"免密碼"SSH 不是沒有安全——是用金鑰登入、不再每次輸密碼。它既更方便也更安全。三步:產生金鑰對把公鑰複製到伺服器、(可選)關掉密碼登入讓只有金鑰能用。下面是全流程。

第 1 步 —— 產生金鑰對

在你的機器上,建立一把 Ed25519 金鑰(現代、快、安全——見 Ed25519 vs RSA):

ssh-keygen -t ed25519 -C "you@example.com"

按 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 步無需終端機。之後你用金鑰連線,不用在觸控螢幕鍵盤上敲密碼。

手機用金鑰登入伺服器,無需密碼
行動端免密碼登入:App 產生並部署金鑰,然後用它連線——不用在玻璃上敲密碼。

常見問題

怎麼設定免密碼 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),然後金鑰登入
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog