无法在 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. 从事件查看器检查日志

    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 服务

相关内容