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/