我正在嘗試在 Windows 10 SSH 伺服器上產生 ecdsa p521 主機金鑰,因為我的客戶端僅支援 ecdsa 521 金鑰。因此,我使用了以下步驟,但未能從伺服器載入 p521 主機金鑰。
1.以管理員使用者身分從 Power Shell 執行以下命令
C:\Windows\System32\OpenSSH\ssh-keygen.exe -C system -b 521 -o -t ecdsa -f C:\ProgramData\ssh\ssh_host_ecdsa_p521_key
修改sshd_config添加
HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_p521_key KexAlgorithms ecdh-sha2-nistp521 HostKeyAlgorithms ecdsa-sha2-nistp521
從 Power Shell 重新啟動服務 sshd
Restart-Service : Failed to start service 'OpenSSH SSH Server (sshd)'. At line:1 char:1 Restart-Service sshd ~~~~~~~~~~~~~~~~~~~~ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service], ServiceCommandException FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.RestartServiceCommand
從 Even Viewer 檢查日誌
sshd: error: Could not load host key: __PROGRAMDATA__/ssh/ssh_host_ecdsa_p521_key
關注點:查看預設主機金鑰 ssh_host_ecdsa_key 我發現使用者名稱是 nt Authority\system@domain_name,但是我從上面產生的金鑰是 user@domain_name。我不確定這是否是根本原因
答案1
解決方法是依賴現有的密鑰文件
- 從 Windows 搜尋欄輸入 Run > %programdata%
- 點擊 ssh 應該會看到所有金鑰檔案和 ssh 設定文件
- 複製上面的路徑(應為 C:\ProgramData\ssh,如果不是,請在下一步中將 C:\ProgramData\ssh 替換為您的路徑)
- 以管理員身份開啟 Power Shell
- 使用 C:\Windows\System32\OpenSSH\ssh-keygen.exe -b 521 -o -t ecdsa -f C:\ProgramData\ssh\ssh_host_ecdsa_key
- 重新啟動服務 sshd