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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM