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

标签 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'})

最佳答案

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

关于python - 为什么 paramiko 连接速度可能比 openssh 客户端慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584343/

相关文章:

python - Python代码中的奇怪缩进

VideoWriter.write 中的 Python OpenCV 错误 (-215)

shell - pexpect - 通过 ssh 运行 script.sh

ssh - :repo_url, :repository 和 :local_repository 有什么区别

使用多个命令的 Python paramiko 模块

python - 使用 Paramiko invoke_shell() 执行的命令的输出是分页的(在 recv 中获取 "--more--")

python - 如何有效地过滤 Python 列表理解中的计算值?

python - 在 Python 的 OpenCV 中找不到 cv2.cv 模块

ssh - 响应 y(es) 到 psftp 主机 key 提示

python - 可以是 "C++ application signal python script on completion"吗?