Skip to main content
 首页 » 编程设计

python之为什么 paramiko 连接速度可能比 openssh 客户端慢

2025年05月04日10dyllove98

我正在使用 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'}) 

请您参考如下方法:

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