無法在 Windows SSH 伺服器上載入 ECDSA P521 主機金鑰

無法在 Windows SSH 伺服器上載入 ECDSA P521 主機金鑰

我正在嘗試在 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
  1. 修改sshd_config添加

    HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_p521_key
    KexAlgorithms ecdh-sha2-nistp521
    HostKeyAlgorithms ecdsa-sha2-nistp521
    
  2. 從 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
    
  3. 從 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

解決方法是依賴現有的密鑰文件

  1. 從 Windows 搜尋欄輸入 Run > %programdata%
  2. 點擊 ssh 應該會看到所有金鑰檔案和 ssh 設定文件
  3. 複製上面的路徑(應為 C:\ProgramData\ssh,如果不是,請在下一步中將 C:\ProgramData\ssh 替換為您的路徑)
  4. 以管理員身份開啟 Power Shell
  5. 使用 C:\Windows\System32\OpenSSH\ssh-keygen.exe -b 521 -o -t ecdsa -f C:\ProgramData\ssh\ssh_host_ecdsa_key
  6. 重新啟動服務 sshd

相關內容