2

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'})
4

1 に答える 1

1

これはおそらく、Diffie-Hellman 鍵交換と RSA 公開鍵認証の両方に必要なモジュラー累乗演算が、Python バイトコード インタープリター (純粋な Python Paramiko など) では、高度に最適化されたコンパイル済みのネイティブ バイナリに比べて桁違いに遅いためです。 OpenSSH を使用します。

于 2013-10-05T10:11:53.630 に答える