我正在使用paramiko在ssh上运行一些命令。我注意到paramiko需要2-3秒来打开一个连接,而命令行ssh客户端几乎是即时的。
使用一些print,我发现问题的症结在于Transport.auth_publickey (它使用发现的~/.ssh/id_dsa)。这与命令行ssh使用的身份验证方法相同,那么为什么paramiko的运行速度会更慢呢?
我用来连接的代码非常简单:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('myhostname', **{'username': 'root'})发布于 2013-10-05 18:11:54
这很可能是因为在Python字节码解释器(如纯Python Paramiko)中,Diffie-Hellman密钥交换和RSA公钥身份验证所需的modular exponentiation操作比OpenSSH使用的经过大量优化的编译本机二进制文件要慢几个数量级。
https://stackoverflow.com/questions/10584343
复制相似问题