我正在使用paramiko通过ssh连接到远程服务器。使用公钥进行身份验证时,性能很慢(约90秒)。以下是相关的日志记录输出:
2012-05-14 17:37:21,378 Ciphers agreed: local=aes128-ctr, remote=aes128-ctr
2012-05-14 17:37:21,378 using kex diffie-hellman-group1-sha1; server key type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local hmac-sha1, remote hmac-sha1; compression: local none, remote none
2012-05-14 17:37:21,481 Switch to new keys ...
2012-05-14 17:37:21,483 Adding ssh-rsa host key for 10.12.34.56: 8a05c68a0707a9fad19290c22542a338
2012-05-14 17:37:21,485 Trying discovered key 3793c7b9c500f52c12e190e92e21713f in /home/david/.ssh/id_rsa
2012-05-14 17:37:21,513 userauth is OK
2012-05-14 17:38:54,370 Authentication (publickey) successful!
请注意最后两行日志输出之间的延迟。当使用ssh从同一用户和远程服务器的命令行连接时,连接是即时的。是什么原因造成延误?
答案 0 :(得分:3)
pycrypto>=2.5
非常慢。降级到pycrypto==2.4.1
后,我看到了25倍的提升。
答案 1 :(得分:0)
经过大量的实验,似乎延迟与密钥的长度有关。我使用的第一把钥匙是4096位。当我切换到较短的(2048位)密钥时,验证所需的时间量急剧下降(<2秒)。