Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法

时间:2023-03-09 16:40:05
Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm)  解决方法

python通过ssh连接linux服务器,部分服务器出现如下异常

03:50:48.725 FAIL ftp operation failed, Incompatible ssh peer (no acceptable kex algorithm)

原因是Python使用的ssh插件,加密算法与远端服务器的加密算法不匹配。

Linux服务端ssh的加密算法配置在 etc/ssh/sshd_config文件中,最后一行

KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

可将最后一行算法修改为正常环境的配置值 (不推荐这种方式)

另一种处理方式是修改Python的调用方式。有两种方式获取ssh链接。

1.基于ssh

这种方式 ssh基于SSH-1.8.0插件,部分老用例使用了这个插件,需要自己实现ssh链接操作。 这个插件2012年10月之后没有再更新,所以对于新的算法支持不了。

2.基于paramiko

自动化框架基于paramiko插件实现, paramiko插件较新,可以支持新的算法。

取用paramiko最新版本,问题解决。  注意paramiko插件依赖ecdsa与pycrypto两个插件。

python插件下载网址: https://pypi.org/