SSHクライアント & キーポリシー

クラスparamiko.client.AutoAddPolicy

ホスト名と新しいホストキーをlocal HostKeysオブジェクトに自動的に追加するためのポリシーです。 保存するためのポリシーです。

classparamiko.client.MissingHostKeyPolicy

SSHサーバーのホスト名がシステムのホストキーにもアプリケーションのキーにもないときに、SSHClientHostKeysAutoAddPolicyRejectPolicy)するポリシーが実装されています。

この関数は、たとえばユーザーにキーの検証を求めるために使用することができます。

__weakref__

オブジェクトへの弱い参照のリスト(定義されている場合)

missing_host_key(client, hostname, key)¶

SSHClientHostKeysオブジェクトのどちらにもないサーバーのサーバーキーを受け取ったときに呼び出されます。 キーを受け入れるには、単にリターンします。

classparamiko.client.RejectPolicy

unknown hostname & キーを自動的に拒否するためのポリシー。

classparamiko.client.SSHClient

SSHサーバーとのセッションの高レベルな表現です。 このクラスはTransportChannelSFTPClientをラップしており、認証とチャンネルオープンのほとんどの面を処理します。 典型的な使用例は次のとおりです。

認証とサーバーホストのキーチェックのために、明示的なオーバーライドを渡すことができます。

このクラスのインスタンスは、コンテキストマネージャーとして使用することができます。

バージョン1.6の新機能

__init__()¶

新しいSSHClientを作成します。

close()¶

この SSHClient とその下にある Transport を閉じます。

警告

この操作を怠ると、状況によってはシャットダウン時に Python インタープリタがハングアップすることがあります (多くの場合、レースコンディションが原因です)。ガベージコレクションに頼るのではなく、クライアントオブジェクトを使い終わったらいつでもcloseするのが良い習慣です。

connect(hostname, port=22, username=None, password=None, pkey=None, key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, gss_host=None, banner_timeout=None, auth_timeout=None, gss_trust_dns=True, passphrase=None, disabled_algorithms=None)¶

SSHサーバーに接続して、認証を行います。 サーバーのホストキーは、システムのホストキー(load_system_host_keysload_host_keysset_missing_host_key_policySSHExceptionを発生させます。

認証は次のような優先順位で試みられます。

  • pkeykey_filename が渡された場合

    • key_filename には、通常の秘密鍵のパスだけでなく、OpenSSH の公開証明書のパスも含まれていることがあります。 -cert.pubkey_filename にリストアップされている必要はなく、証明書だけがリストアップされます。
  • SSHエージェントを通して見つけられるすべての鍵
  • ~/.ssh/

    • 既存のそのような秘密鍵にマッチするOpenSSHスタイルの公開証明書が存在する場合(例えば、key_filenameに秘密鍵を持っている場合)。
  • id_rsaid_rsa-cert.pubなど、既存の秘密鍵と一致するOpenSSHスタイルの公開証明書が存在する場合、その証明書は秘密鍵と一緒に読み込まれ、認証に使用されます。

  • Plain username/password auth, if a password was given
  • 秘密鍵のロック解除にパスワードが必要で、パスワードが入力された場合、そのパスワードを使って鍵のロック解除を試みます。

    パラメータ。

    • hostname (str) – 接続先のサーバー
    • port (int) – 接続先のサーバーポート
    • username (str) – 認証するユーザー名(デフォルトは現在のローカルユーザー名)
    • password (str) – パスワード認証に使用されます。 passphraseが与えられていない場合は、プライベートキーの復号にも使用されます。
    • passphrase (str) – 秘密鍵の復号化に使用されます。
    • pkey (PKey) – 認証に使用するオプションのプライベートキー
    • key_filename (str) – ファイル名、またはファイル名のリストです。
    • timeout (float) – オプションである TCP 接続のタイムアウト(秒単位)
    • allow_agent (bool) – False に設定すると SSH エージェントへの接続を無効にします
    • look_for_keys (bool) – False に設定すると、~/.ssh/
    • compress (bool) – True に設定すると、圧縮を有効にします
    • sock (socket) – 開いているソケットまたはソケットのようなオブジェクト(~/.ssh/Channelなど)
    • gss_auth(bool) – True GSS-API 認証を使用したい場合
    • gss_kex(bool) – GSS-API 鍵交換とユーザー認証を行う。API キー交換とユーザー認証を行う
    • gss_deleg_creds (bool) – GSS-API クライアントの認証情報を委譲するかどうか
    • gss_host (str) – ケルベロスデータベース内のターゲット名です。 default: hostname
    • gss_trust_dns (bool) – 接続されているホストの名前をsecurecanonicalizeするためにDNSを信頼するかどうかを示します(defaultTrue)。
    • banner_timeout (float) – SSHバナーが表示されるまでのオプションのタイムアウト(秒単位)
    • auth_timeout (float) – 認証応答を待つためのオプションのタイムアウト(秒単位)。
    • disabled_algorithms (dict) – Transportと同名のkeywordargumentに直接渡されるオプションのdictです。

    Raises:

    BadHostKeyException – サーバーのホストキーが飲料できなかった場合

    Raises:

    AuthenticationException – 認証に失敗した場合

    Raises:

    SSHException – その他、SSHセッションの接続や確立にエラーがあった場合

    Raises:

    socket.error – 接続中にソケットエラーが発生した場合

    バージョン1.15での変更点。15: banner_timeoutgss_authgss_kexgss_deleg_credsgss_hostの引数を追加しました。

    バージョン2.3での変更点:gss_trust_dnsの引数を追加しました。

    バージョン 2.4 で変更: passphrase の引数を追加。

    バージョン 2.6 で変更: disabled_algorithms の引数を追加。

    exec_command(command, bufsize=-1, timeout=None, get_pty=False, environment=None)¶

    SSHサーバ上でコマンドを実行します。 新しいChannelが開かれ、要求されたコマンドが実行されます。 コマンドの入力および出力ストリームは、Pythonのfileライクなオブジェクト(stdin, stdout, stderr)として返されます。

    パラメタ。

    • command (str) – 実行するコマンド
    • bufsize (int) – Pythonの内蔵file()関数と同じように解釈されます
    • timeout (int) – コマンドのチャンネルタイムアウトを設定します。 Channel.settimeoutを参照
    • get_pty (bool) – サーバーから擬似ターミナルを要求します (デフォルト FalseChannel.get_ptyを参照
    • environment (dict) –

      シェル環境変数のdictで、リモートコマンドが実行されるデフォルト環境にマージされます。

      警告

      サーバーは一部の環境変数を黙って拒否することがあります。詳細は Channel.set_environment_variable の警告を参照してください。

    Returns:

    実行中のコマンドのstdin, stdout, stderrを3タプルとして返す

    Raises:

    SSHException – サーバーがコマンドの実行に失敗した場合

    バージョン1.10での変更点。10: get_pty kwargを追加しました。

    get_host_keys()¶

    ローカルのHostKeysオブジェクトを取得します。

    Returns:

    ローカルのホストキーをHostKeysオブジェクトとして取得します。

    get_transport()¶

    このSSH接続の基礎となるTransportオブジェクトを返します。これは、特定の種類のチャンネルを開くなど、低レベルのタスクを実行するために使用することができます。

    Returns:

    この接続のTransportオブジェクト

    invoke_shell(term=’vt100′, width=80, height=24, width_pixels=0, height_pixels=0, environment=None)¶

    SSHサーバー上でインタラクティブなシェルセッションを開始します。 新しいChannelが開かれ、要求されたターミナルのタイプとサイズを使って擬似ターミナルに接続されます。

    Parameters:

    • term (str) – エミュレートする端末タイプ (例, "vt100"
    • width (int) – ターミナルウィンドウの幅(文字数)
    • height (int) – ターミナルウィンドウの高さ(文字数)
    • width_pixels (int) – ターミナルウィンドウの幅(文字数)
    • width_pixels (int) – ターミナルウィンドウの高さ(文字数)。 ターミナルウィンドウの幅(ピクセル単位)
    • height_pixels (int) – ターミナルウィンドウの高さ(ピクセル単位)
    • environment (dict) – コマンドの環境

    戻ります。

    リモートシェルに接続された新しいChannelを返します

    立ち上がります。

    SSHException – サーバーがシェルの起動に失敗した場合

    load_host_keys(filename)¶

    ローカルのホストキーファイルからホストキーを読み込みます。 このメソッドで読み込まれたホストキーは、load_system_host_keyssave_host_keysで保存し直されます(そのため、修正することができます)。

    このメソッドは複数回呼び出すことができます。 それぞれの新しいホストキーのセットは、既存のセットにマージされます(矛盾がある場合は、新しいものが古いものを置き換えます)。 自動的に保存するときは、最後のホスト名が使用されます。

    Parameters:

    filename (str) – 読み込むファイル名

    立ち上がります。

    IOError – ファイル名が読めなかった場合

    load_system_host_keys(filename=None)¶

    システムの(読み取り専用の)ファイルからホストキーを読み込みます。

    このメソッドは複数回呼び出すことができます。

    filenameNone のままにしておくと、OpenSSHが使用するユーザーのローカルな「既知のホスト」ファイルからキーを読み取ろうとしますが、ファイルが読み取れない場合でも例外は発生しません。 これはおそらく posix でしか使えないでしょう。

    Parameters:

    filename (str) – 読み込むファイル名、または None

    Raises:

    IOError -ファイル名が指定されていて、そのファイルが読めなかった場合

    open_sftp()¶

    SSHサーバーでSFTPセッションを開きます。

    Returns:

    a new SFTPClient session object

    save_host_keys(filename)¶

    ホストキーをファイルに戻して保存します。 保存されるのはload_host_keysload_system_host_keysで読み込まれたホストキーは保存されません。

    Parameters:

    filename (str) – 保存先のファイル名

    Raises:

    IOError – ファイルの書き込みができなかった場合

    set_log_channel(name)¶

    ロギング用のチャンネルを設定します。

    Parameters:

    name (str) – logging用の新しいチャンネル名

    set_missing_host_key_policy(policy)¶

    既知のホストキーのないサーバーに接続するときに使用するポリシーを設定します。

    具体的には。

    • ポリシーとは「ポリシークラス」(またはそのインスタンス)のことで、MissingHostKeyPolicyRejectPolicyAutoAddPolicyWarningPolicy、またはユーザーが作成したサブクラスなどがあります。
    • ホストキーは、クライアントオブジェクトのキャッシュされたホストキー構造(load_system_host_keysload_host_keysによって操作されるもの)に現れたときに知られます。

    Parameters:

    policy (MissingHostKeyPolicy) – 以前に知られていなかったサーバーからホストキーを受け取ったときに使用するポリシー

    classparamiko.client.WarningPolicy

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です