ssh登录Linux服务器提示no matching host key type found Their offer:ssh rsa ssh dss preauth
(0)
最佳答案
这个问题是由于H3C SecPath A2020-G 防火墙的 SSH 客户端仅支持老旧的ssh-rsa/ssh-dss算法,而 Linux 服务器端默认禁用了这些不安全的算法,导致密钥类型协商失败。以下是分步骤的解决方法:
一、临时兼容方案(服务器端调整,适合测试场景)
若需快速解决连接问题,可在 Linux 服务器上临时启用对ssh-rsa/ssh-dss的支持(注意:此操作会降低 SSH 安全性,仅建议临时使用)。
修改 Linux 服务器的 SSH 配置文件登录 Linux 服务器,编辑/etc/ssh/sshd_config文件:
sudo vi /etc/ssh/sshd_config
在文件末尾添加以下内容,强制启用旧算法支持:
HostKeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss
重启 SSH 服务执行以下命令使配置生效:
sudo systemctl restart sshd
验证连接再次从 H3C 防火墙发起 SSH 登录,此时应能成功协商密钥类型并建立连接。
二、长期安全方案(优先推荐)
若需兼顾安全性,建议从防火墙侧或服务器侧升级算法支持,以下是两种方向:
方向 1:升级防火墙的 SSH 客户端支持(需 H3C 官方配合)
联系 H3C 技术支持,确认 SecPath A2020-G 是否有新版本固件支持更安全的 SSH 算法(如ed25519、rsa-sha2-256)。若有,升级固件后即可与现代 Linux 服务器的默认 SSH 配置兼容。
方向 2:在 Linux 服务器上配置双算法兼容(相对安全)
若防火墙无法升级,可在 Linux 服务器上同时支持新算法和旧算法,既保证新客户端的安全连接,又兼容防火墙的旧算法。
修改 Linux 服务器的 SSH 配置文件编辑/etc/ssh/sshd_config,添加以下配置(保留新算法的同时,临时兼容旧算法):
HostKeyAlgorithms ssh-ed25519,ssh-rsa,ssh-dss
PubkeyAcceptedAlgorithms ssh-ed25519,ssh-rsa,ssh-dss
重启 SSH 服务
sudo systemctl restart sshd
验证安全与兼容性
新客户端(如本地 Linux/Mac 的终端)可通过ed25519算法安全连接;
防火墙的旧客户端可通过ssh-rsa/ssh-dss算法兼容连接。
三、故障排查与注意事项
若修改配置后仍无法连接,可在 Linux 服务器上执行journalctl -u sshd -xe查看 SSH 服务的详细日志,确认是否有算法协商的具体报错。
临时启用旧算法后,建议定期检查防火墙的升级可能性,最终目标是通过升级防火墙或切换到更安全的认证方式(如证书认证、堡垒机)彻底解决兼容性与安全性问题。
通过以上步骤,可快速解决 H3C 防火墙与 Linux 服务器的 SSH 密钥协商问题,同时兼顾安全性与兼容性。
(0)
怎么获取设备升级固件?
应该是密钥协商问题
看看嫩不能修改ssh版本
(0)
应该怎么解决?升级吗
这是通过堡垒机登录提示 电脑直接使用ssh软件可以登录服务器
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
怎么获取设备升级固件?