RHEL9连接老版本操作系统报错:no matching host key type found解决方案

当尝试从RHEL9系统连接到旧系统(如RHEL6、RHEL7等)时,会出现以下错误信息:

$ ssh Unable to negotiate with IPAddr port 22: no matching host key type found. Their offer: ssh-rsa

然而,从RHEL8系统进行连接则一切正常。针对此问题,以下是几种解决方案:

方案一:在旧系统上重新生成密钥

如果旧系统支持,可以考虑重新生成一个新的密钥类型,如ECDSA密钥,以兼容RHEL9系统的安全要求。具体步骤如下:

1.生成ECDSA密钥:

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

2.将新生成的ECDSA密钥添加到SSH配置文件中:

HostKey /etc/ssh/ssh_host_ecdsa_key

(此步骤需编辑/etc/ssh/sshd_config文件)

3.重启SSH服务以使更改生效:

service sshd restart

方案二:在RHEL9系统上启用SHA1

虽然可以通过在RHEL9系统上启用SHA1来解决兼容性问题,但此方案会降低系统安全性,因此不推荐使用。如仍需尝试,可使用以下命令:

update-crypto-policies --set $(update-crypto-policies --show):SHA1

注意:当系统启用FIPS加密策略时,此方案不可行。

方案三:使用中间RHEL8系统作为跳板

由于RHEL8系统具有较好的兼容性,可以设置一个RHEL8系统作为中间跳板。通过RHEL8系统再连接到旧系统,具体方法如下:

1.使用SSH连接到旧系统:

(rhel9) $ ssh -t rhel8 ssh legacy-system

2.使用SFTP传输文件:

(rhel9) $ ssh -t rhel8 sftp legacy-system

3.使用SCP复制文件:

(rhel9) $ ssh -t rhel8 scp -3 rhel9: legacy-system:

注意:若要实现无密码复制,需在RHEL9系统上授权RHEL8系统的公钥。

总结

RHEL9系统在采用更严格的加密策略时,可能会遇到与旧系统不兼容的问题。根据实际情况,可以选择在旧系统上重新生成密钥、在RHEL9系统上启用SHA1(不推荐)或使用中间RHEL8系统作为跳板等解决方案。

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/rhel9-ssh-legacy-os-connection-error-no-matching-host-key-type-fix.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年6月4日 16:32
下一篇 2025年6月4日 18:11

相关推荐

发表回复

登录后才能评论