SecureCRT使用SSH登录服务器报错:Key exchange failed

发布于:2024-06-30 ⋅ 阅读:(20) ⋅ 点赞:(0)

SecureCRT使用SSH登录Ubuntu服务器报错:Key exchange failed

原因:
ssh客户端与服务器的公钥协商失败,SecureCRT客户端所指定的秘钥交换算法(KexAlgorithms ),不在服务端支持范围内。可能是服务端的sshd版本比较高、默认配置不支持一些比较旧的秘钥交换算法。

SecureCRT 7.0 仅支持下面几种:



解决方案:
方案1)升级SecureCRT到更高的版本。

方案2)修改sshd服务端配置、指定秘钥交换算法列表。以 ubuntu 为例:

vi /etc/ssh/sshd_config

在配置文件末尾追加配置(如果已经存在、就修改 KexAlgorithms  配置)如下:

# for SecurCRT (version < 8) ssh client
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diff
ie-hellman-group18-sha512,diffie-hellman-group14-sha256,
diffie-hellman-group14-sha1

或者配置:
KexAlgorithms +diffie-hellman-group-exchange-sha256,diffie-hellman-group1-sha1

重启服务:service sshd restart

方案3)如果无法本地登录管理服务端、只能ssh访问服务端的话,那可以试试用其他ssh客户端软件(支持服务端秘钥交换算法)先登录、修改服务端sshd配置文件、重启服务,然后就可以通过SecureCRT客户端登录了。
例如,如果安装了git,可以用git自带的 ssh.exe 登录、修改服务端配置。
cmd 命令行执行 ssh.exe 登录:
cd c:\Program Files\Git\usr\bin\
ssh.exe root@192.168.1.100

修改sshd配置后,重启sshd服务,然后就可以用SecureCRT SSH登录了。

另外,注意:如果是银河麒麟V10,配置会有差异,如果只是修改 KexAlgorithms 还不够,还是会报错:

Key exchange failed.
No compatible key exchange method. The server supports these methods: 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

后面仔细查看sshd配置文件,配置有些差异,配置有区别:

如果是银河麒麟V10系统,配置如下,需要注释掉原来的 Ciphers、MACs、KexAlgorithms 参数,然后再重新配置 KexAlgorithms 追加到末尾:
Protocol 2
LogLevel VERBOSE
PubkeyAuthentication yes
RSAAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
PermitUserEnvironment no
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
ClientAliveCountMax 0
Banner /etc/issue.net
#MACs hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com
StrictModes yes
AllowTcpForwarding no
AllowAgentForwarding no
GatewayPorts no
PermitTunnel no
#KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

# national algorithm standards supports
#HostKeyAlgorithms sm2

# for SecurCRT (version < 8) ssh client
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1