SecureCRT连接密钥交换失败
问题描述:
SecureCRT6.7连接银河麒麟操作系统v10版本,报错如下:
bash
key exchange failed
密钥交换失败
no compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
没有兼容的密钥交换方法。服务器支持以下方法: curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
no compatible MAC. The server supports these MACS: hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com
没有兼容的MAC。服务器支持这些MACS: hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com
问题分析:
在使用 SecureCRT 6.7 连接 银河麒麟操作系统 V10 时,如果遇到 Key exchange failed 错误,通常是因为 SecureCRT 和服务器之间的 SSH 密钥交换算法不兼容。银河麒麟 V10 默认使用了较新的加密算法,而 SecureCRT 6.7 版本较旧,可能不支持这些算法。
解决方案:
- 确认 SecureCRT 版本
SecureCRT 6.7 是一个较旧的版本(发布于 2010 年左右),建议升级到 SecureCRT 9.x 或更高版本,以支持更多现代加密算法。 - 修改 SecureCRT 的 SSH 配置
如果无法升级 SecureCRT,可以尝试修改 SSH 配置,启用兼容的密钥交换算法:
步骤:
- 打开 SecureCRT。
- 进入需要连接的会话配置:
- 右键点击会话 -> Properties(属性)。
- 在左侧菜单中选择 Connection -> SSH2。
- 点击右侧的 Advanced(高级)按钮。
- 在 Key Exchange(密钥交换)选项中,调整算法顺序:
- 将较旧的算法(如 diffie-hellman-group1-sha1 或 diffie-hellman-group14-sha1)移到最前面。
- 确保勾选这些算法。
- 保存配置并重新连接。
- 修改银河麒麟 V10 的 SSH 配置
如果修改 SecureCRT 配置后问题仍未解决,可以尝试在银河麒麟 V10 上调整 SSH 服务端的配置,以支持较旧的密钥交换算法。
步骤:
-
使用 root 用户登录银河麒麟 V10
-
编辑 SSH 配置文件:
bashvi /etc/ssh/sshd_config
-
添加或修改以下配置项:
bashKexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,ecdh-sha2- nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
-
保存并退出编辑器。
-
重启 SSH 服务:
bashsystemctl restart sshd
- 检查防火墙和网络配置
如果问题仍然存在,可能是防火墙或网络配置阻止了 SSH 连接:- 确保银河麒麟 V10 的防火墙允许 SSH 端口(默认是 22)。
- 检查网络是否通畅,使用 ping 或 telnet 测试连接。
- 升级 SecureCRT
如果以上方法无效,建议升级 SecureCRT 到最新版本(如 9.x 或更高),以支持更多现代加密算法,避免兼容性问题。 - 使用其他 SSH 客户端
如果 SecureCRT 无法满足需求,可以尝试其他 SSH 客户端,例如:- MobaXterm(免费且功能强大)
- Xshell(商业软件,支持多种加密算法)
- PuTTY(免费开源)
通过以上步骤,你应该能够解决 Key exchange failed 的问题。