在新安装的 Ubuntu 22.04 客户端上,通过 SSH 连接一台旧服务器时,命令立即失败,并提示:
Unable to negotiate with xxx port 22: no matching host key type found.
Their offer: ssh-rsa,ssh-dss
同网络下的 Ubuntu 20.04 及 CentOS 7 客户端可正常登录。
在用户目录下的 ~/.ssh/config
中增加兼容算法:
Host 192.168.x.x
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
若旧服务器只给出 ssh-dss,可把 ssh-rsa
换成 ssh-dss
;保存后重新连接即可登录。
ssh -Q key
ssh -vvv user@host
若输出出现 host key algorithm: ssh-rsa
或 ed25519
且能进入 shell,即表示匹配成功。
步骤 | 动作 |
---|---|
1 | 确认报错仅发生在高版本客户端 |
2 | 临时在 ~/.ssh/config 增加旧算法 |
3 | 长期应在服务端升级或添加新密钥 |
4 | 使用 ssh -vvv 验证协商过程 |
完成以上调整后,新旧系统之间的密钥协商即可恢复正常,SSH 连接不再因算法不匹配而
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。