我正在尝试在 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
从事件查看器检查日志
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 服务