最详细解决Unable to negotiate with XXX port :no matching host key type found.Their offer: ssh-rsa,ssh-dss
warning:
这篇文章距离上次修改已过182天,其中的内容可能已经有所变动。
这个错误通常发生在使用SSH客户端尝试连接到SSH服务器时,但客户端无法与服务器在指定端口上协商安全连接,因为它找不到服务器的主机密钥类型。
解释:
SSH客户端在尝试连接到SSH服务器时,会发送一个包含它支持的主机密钥类型列表的消息。如果服务器返回的密钥类型不在该列表中,客户端就无法继续协商,从而导致这个错误。
解决方法:
- 检查SSH服务器配置文件(例如
/etc/ssh/sshd_config
),确保HostKey
项包含客户端尝试协商的密钥类型。 - 如果服务器配置是正确的,但客户端仍然无法接受密钥,可以尝试更新SSH客户端到最新版本,或者在客户端配置文件(例如
~/.ssh/config
)中指定服务器的主机密钥类型。 - 如果你有权限修改SSH服务器设置,可以生成一个新的主机密钥类型,并重新启动SSH服务。
例如,如果你需要添加ed25519
密钥类型支持,可以在服务器的sshd_config
文件中添加以下行:
HostKey /etc/ssh/ssh_host_ed25519_key
然后重启SSH服务:
sudo service ssh restart
确保在进行任何更改之前备份相关配置文件,并在生产环境中谨慎操作。
评论已关闭