管理多台雲端伺服器(AWS, GCP)或實體機時,如果每次連線都要輸入長密碼,不僅效率低,還容易遭受爆破攻擊(Brute-force Attack)。
現代 Linux 維運的標準規範是使用 SSH 金鑰認證(Public Key Authentication)。透過「非對稱加密」技術,我們只需要把「公鑰」放在伺服器上,就能用本機的「私鑰」免密碼秒速登入,同時具備極高的安全性。
SSH 金鑰原理:公鑰與私鑰
| 金鑰種類 | 英文名稱 | 放置位置 | 比喻 / 概念說明 | 權限保護 |
|---|---|---|---|---|
| 私鑰 | Private Key (id_ed25519) | 本機電腦(Mac/Windows) | 鑰匙:只有自己持有。 | 600(僅本人可讀寫) |
| 公鑰 | Public Key (id_ed25519.pub) | 遠端伺服器 | 鎖頭:可公開發放給任何想登入的伺服器。 | 644 或放於 authorized_keys |
SSH 金鑰三部曲
在 Mac 本機終端機中,只需要三個步驟就能建立並部署金鑰:
| 步驟 | 指令 / 操作 | 說明 |
|---|---|---|
| 產生金鑰 | ssh-keygen -t ed25519 -C "your_email@example.com" | 產生一對金鑰(推薦使用現代高安全的 ED25519 演算法)。 |
| 傳送公鑰 | ssh-copy-id ubuntu@<虛擬機IP> | 自動將本機公鑰寫入伺服器的 ~/.ssh/authorized_keys 中。 |
| 免密連線 | ssh ubuntu@<虛擬機IP> | 無需輸入密碼,直接安全登入 Linux 伺服器 |
資安防禦:修改 SSH 設定檔
為了徹底防止駭客暴力破解,我們通常會修改伺服器內部的 SSH 設定檔(/etc/ssh/sshd_config):
建議安全設定點:
修改後必須重啟服務:sudo systemctl restart ssh
實作
產生 SSH 金鑰與檢查檔案(本機 Mac)

首次信任驗證與免密碼登入(遠端虛擬機)