2
我使用paramiko通过ssh运行一些命令。我注意到paramiko需要2-3秒来打开连接,而命令行ssh客户端几乎是即时的。为什么paramiko连接比openssh客户端更慢?
使用一些打印,我发现的关键点是Transport.auth_publickey(它使用发现〜/ .ssh/id_dsa)。这与命令行ssh使用的身份验证方法相同,那么为什么paramiko运行速度会更慢?
我使用连接的代码非常简单:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('myhostname', **{'username': 'root'})
看来paramiko是用纯python编写的。如果这一步骤是计算密集型的,它可能比等效的C函数慢50倍。 – ascobol