在 Windows 上生成 SSH 公鑰并實現免密登錄 Linux,可以使用 ssh-keygen
命令,這是 Windows 10 和 Windows 11 中默認包含的 OpenSSH 工具的一部分。下面是詳細步驟:
在 Windows 上生成 SSH 公鑰
-
打開 PowerShell 或命令提示符:
- 在開始菜單中搜索并打開 PowerShell 或命令提示符(cmd)。
-
使用
ssh-keygen
生成密鑰對:-
輸入以下命令來生成密鑰對:
ssh-keygen -t rsa -b 2048
-
當系統提示您輸入存儲密鑰的位置時,可以按 Enter 使用默認路徑(通常是
C:\Users\YourUsername\.ssh\id_rsa
)。如果已經存在,會提示是否覆蓋,視情況回答。 -
提示輸入密碼時,可以直接按 Enter,表示不設置密碼(即免密登錄)。
-
-
查看生成的公鑰:
- 默認情況下,公鑰(
id_rsa.pub
)和私鑰(id_rsa
)將會保存在C:\Users\YourUsername\.ssh\
目錄中。
- 默認情況下,公鑰(
將公鑰復制到 Linux 服務器
-
手動上傳或使用
ssh-copy-id
:-
手動方式:
-
將公鑰文件上傳到服務器:
type $HOME\.ssh\id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
-
確保
~/.ssh
目錄和authorized_keys
文件具有正確的權限:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
-
使用 Windows Subsystem for Linux (WSL):
- 如果 WSL 已安裝,您可以在 WSL 上運行
ssh-copy-id
命令上傳公鑰。
- 如果 WSL 已安裝,您可以在 WSL 上運行
-
-
測試免密登錄:
-
在 Windows 上使用 SSH 客戶端,連接到遠程 Linux 服務器以測試配置:
ssh username@remote_host
-
如果一切順利,您應該能夠免密碼登錄到遠程服務器。如果遇到問題,請確保 authorized_keys
文件的權限設置正確,且公鑰內容無誤。