在 Windows 上生成 SSH 公鑰(id_rsa.pub)的步驟
以下是使用 Windows 內建 OpenSSH 工具生成 SSH 金鑰對(含 id_rsa.pub)的詳細步驟:
步驟 1:開啟 PowerShell
- 按 
Win + X,選擇 Windows PowerShell 或 終端機(非命令提示字元)。 - 建議以 系統管理員身分執行(非必需,但可避免權限問題)。
 
步驟 2:生成 SSH 金鑰對
輸入以下命令(使用 RSA 演算法,4096 位元提高安全性):
ssh-keygen -t rsa -b 4096
步驟 3:設定金鑰儲存路徑
- 
系統會提示:
Enter file in which to save the key (C:\Users\你的用戶名\.ssh\id_rsa):- 直接按 
Enter使用預設路徑(推薦)。 - 若需自訂路徑,輸入完整路徑(例如 
C:\my_keys\server_key)。 
 - 直接按 
 - 
安全提示:
 若檔案已存在,會詢問是否覆蓋。請確認避免誤刪舊金鑰! 
步驟 4:設定金鑰密碼(Passphrase)
- 
系統提示:
Enter passphrase (empty for no passphrase):- 建議輸入密碼:即使私鑰被盜也需密碼才能使用(提高安全性)。
 - 若跳過,直接按 
Enter(不建議,尤其生產環境)。 
 - 
再次輸入密碼確認:
Enter same passphrase again: 
步驟 5:完成生成
- 成功後顯示:
Your identification has been saved in C:\Users\用戶名\.ssh\id_rsa. Your public key has been saved in C:\Users\用戶名\.ssh\id_rsa.pub. - 金鑰指紋(SHA256)會一併顯示,用於後續驗證。
 
步驟 6:取得公鑰內容(id_rsa.pub)
- 
使用以下命令複製公鑰內容:
cat ~\.ssh\id_rsa.pub- 或手動用記事本開啟檔案:
C:\Users\你的用戶名\.ssh\id_rsa.pub 
 - 或手動用記事本開啟檔案:
 - 
公鑰格式範例:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC...(長串字元)... user@host 
將公鑰部署到伺服器
- 
複製公鑰內容:
從id_rsa.pub複製全部文字(開頭ssh-rsa到結尾郵箱)。 - 
登入遠端伺服器:
ssh 你的帳號@伺服器IP - 
將公鑰加入
authorized_keys:# 若目錄不存在則建立 mkdir -p ~/.ssh chmod 700 ~/.ssh # 將公鑰寫入文件 echo "貼上複製的公鑰內容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 
測試 SSH 登入
ssh -i C:\Users\用戶名\.ssh\id_rsa 你的帳號@伺服器IP
- 若設定了密碼,會提示輸入金鑰密碼(Passphrase)。
 - 成功後即可免密碼登入!
 
進階設定(可選)
使用 ssh-agent 管理金鑰密碼
避免每次輸入金鑰密碼:
# 啟動 ssh-agent 服務
Start-Service ssh-agent
# 將私鑰加入 agent
ssh-add ~\.ssh\id_rsa
輸入一次密碼後,當前會話即可重複使用金鑰。
疑難排解
- 
權限錯誤:
確保~/.ssh目錄權限為700,authorized_keys為600。 - 
連線被拒:
檢查伺服器 SSH 設定(/etc/ssh/sshd_config):PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 
總結流程
graph LR
A[開啟 PowerShell] --> B[執行 ssh-keygen]
B --> C[設定路徑與密碼]
C --> D[取得 id_rsa.pub 內容]
D --> E[複製公鑰到伺服器]
E --> F[測試登入]
透過以上步驟,即可在 Windows 安全生成 SSH 金鑰並實現免密碼登入伺服器!