ubuntu ssh远程centos报no matching host key type found. Their offer: ssh-rsa,ssh-dss解决

内容目录

环境

Ubuntu 22.04
centos 6.5

原因

原因: Ubuntu 22.04 openssh版本高于 centos 6.5 太多
8.8p1 版的 openssh 的 ssh 客户端默认禁用了 ssh-rsa 算法, 但是对方服务器只支持 ssh-rsa, 当你不能自己升级远程服务器的 openssh 版本或修改配置让它使用更安全的算法时, 在本地 ssh 针对这些旧的ssh server重新启用 ssh-rsa 也是一种权宜之法。
解决办法1:使用ssh命令时指定算法

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa user@host -p xxxx

解决办法2:修改ssh配置文件 ~/.ssh/config,对于无法成功连接的host, 增加配置项:

Host xxxx.com
  HostName xxxx.com
  User xxx
  Port 22
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa

或者对所有host指定:

Host *
  ServerAliveInterval 10
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa

常见错误输出以及解决

root@devops:~# ssh   127.0.0.58
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:gSh9A4BhdVspH+44IPQGaH9bcsudeoSymOQH+6K7m00.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending DSA key in /root/.ssh/known_hosts:2
  remove with:
  ssh-keygen -f "/root/.ssh/known_hosts" -R "127.0.0.58"
Host key for test.xxxxx.com has changed and you have requested strict checking.
Host key verification failed.

这个警告表明您连接的远程主机的主机密钥发生了变化,这可能是由于远程主机进行了一些配置更改或是网络攻击的结果。为了确保连接的安全性,SSH 客户端会检查远程主机的主机密钥是否与之前保存的匹配。

警告中提供了一些解决方法:

  1. 联系系统管理员:如果您知道远程主机的管理员,请联系他们以确认是否有合法的更改发生。

  2. 删除已知主机密钥:警告中提供了一条命令,可以使用 ssh-keygen 命令来删除已知主机密钥。在这种情况下,您可以执行以下命令来删除与 127.0.0.58 关联的密钥:

    ssh-keygen -f "/root/.ssh/known_hosts" -R "127.0.0.58"

    这将从您的 known_hosts 文件中删除与 127.0.0.58 关联的密钥。执行此操作后,下次连接时会重新验证主机密钥。

  3. 解除严格检查:如果您确认远程主机的更改是合法的,您可以修改 SSH 客户端的配置以放宽对主机密钥的检查。但是,这会降低连接的安全性。您可以编辑 ~/.ssh/config 文件(如果不存在则创建),并添加以下行来解除对 127.0.0.58 的严格检查:

    Host 127.0.0.58
        StrictHostKeyChecking no

    请注意,此方法会关闭对所有主机的严格检查,可能会带来安全风险。

选择适合您情况的解决方案,然后尝试重新连接远程主机。

参考链接:https://blog.csdn.net/GratedRawCarrots/article/details/133870059

1 comment on ubuntu ssh远程centos报no matching host key type found. Their offer: ssh-rsa,ssh-dss解决

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注