为什么paramiko连接比openssh客户端更慢?

时间:2012-05-14 13:32:33

标签: python ssh paramiko

我正在使用paramiko在ssh上运行一些命令。我注意到paramiko需要2-3秒才能打开连接,而命令行ssh客户端几乎是即时的。

使用一些打印件,我发现粘连点是Transport.auth_publickey(它使用了发现的〜/ .ssh / id_dsa)。这与命令行ssh使用的身份验证方法相同,那么为什么paramiko可能会运行得更慢?

我用来连接的代码非常简单:

    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('myhostname', **{'username': 'root'})

1 个答案:

答案 0 :(得分:1)

这很可能是因为Diffie-Hellman密钥交换和RSA公钥认证所需的modular exponentiation操作在Python字节码解释器(如纯Python Paramiko)中要慢几个数量级。高度优化的OpenSSH使用的编译本机二进制文件。