SSHクライアント & キーポリシー
クラスparamiko.client.
AutoAddPolicy
¶
ホスト名と新しいホストキーをlocal HostKeys
オブジェクトに自動的に追加するためのポリシーです。 保存するためのポリシーです。
classparamiko.client.
MissingHostKeyPolicy
¶
SSHサーバーのホスト名がシステムのホストキーにもアプリケーションのキーにもないときに、SSHClient
HostKeys
AutoAddPolicy
RejectPolicy
)するポリシーが実装されています。
この関数は、たとえばユーザーにキーの検証を求めるために使用することができます。
__weakref__
¶
オブジェクトへの弱い参照のリスト(定義されている場合)
missing_host_key
(client, hostname, key)¶
SSHClient
HostKeys
オブジェクトのどちらにもないサーバーのサーバーキーを受け取ったときに呼び出されます。 キーを受け入れるには、単にリターンします。
classparamiko.client.
RejectPolicy
¶
unknown hostname & キーを自動的に拒否するためのポリシー。
classparamiko.client.
SSHClient
¶
SSHサーバーとのセッションの高レベルな表現です。 このクラスはTransport
Channel
SFTPClient
をラップしており、認証とチャンネルオープンのほとんどの面を処理します。 典型的な使用例は次のとおりです。
認証とサーバーホストのキーチェックのために、明示的なオーバーライドを渡すことができます。
このクラスのインスタンスは、コンテキストマネージャーとして使用することができます。
バージョン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_keys
load_host_keys
set_missing_host_key_policy
SSHException
を発生させます。
認証は次のような優先順位で試みられます。
pkey
key_filename
が渡された場合
key_filename
には、通常の秘密鍵のパスだけでなく、OpenSSH の公開証明書のパスも含まれていることがあります。-cert.pub
key_filename
にリストアップされている必要はなく、証明書だけがリストアップされます。- SSHエージェントを通して見つけられるすべての鍵
~/.ssh/
- 既存のそのような秘密鍵にマッチするOpenSSHスタイルの公開証明書が存在する場合(例えば、
key_filename
に秘密鍵を持っている場合)。
id_rsa
id_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を信頼するかどうかを示します(default
True
)。 - banner_timeout (float) – SSHバナーが表示されるまでのオプションのタイムアウト(秒単位)
- auth_timeout (float) – 認証応答を待つためのオプションのタイムアウト(秒単位)。
- disabled_algorithms (dict) –
Transport
と同名のkeywordargumentに直接渡されるオプションのdictです。
BadHostKeyException
– サーバーのホストキーが飲料できなかった場合
AuthenticationException
– 認証に失敗した場合
SSHException
– その他、SSHセッションの接続や確立にエラーがあった場合
socket.error – 接続中にソケットエラーが発生した場合
バージョン1.15での変更点。15: banner_timeout
gss_auth
gss_kex
gss_deleg_creds
gss_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) – サーバーから擬似ターミナルを要求します (デフォルト
False
Channel.get_pty
を参照 - environment (dict) –
シェル環境変数のdictで、リモートコマンドが実行されるデフォルト環境にマージされます。
警告
サーバーは一部の環境変数を黙って拒否することがあります。詳細は
Channel.set_environment_variable
の警告を参照してください。
実行中のコマンドのstdin, stdout, stderrを3タプルとして返す
SSHException
– サーバーがコマンドの実行に失敗した場合
バージョン1.10での変更点。10: get_pty
kwargを追加しました。
get_host_keys
()¶
ローカルのHostKeys
オブジェクトを取得します。
ローカルのホストキーをHostKeys
オブジェクトとして取得します。
get_transport
()¶
このSSH接続の基礎となるTransport
オブジェクトを返します。これは、特定の種類のチャンネルを開くなど、低レベルのタスクを実行するために使用することができます。
この接続のTransport
オブジェクト
invoke_shell
(term=’vt100′, width=80, height=24, width_pixels=0, height_pixels=0, environment=None)¶
SSHサーバー上でインタラクティブなシェルセッションを開始します。 新しいChannel
が開かれ、要求されたターミナルのタイプとサイズを使って擬似ターミナルに接続されます。
- 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_keys
save_host_keys
で保存し直されます(そのため、修正することができます)。
このメソッドは複数回呼び出すことができます。 それぞれの新しいホストキーのセットは、既存のセットにマージされます(矛盾がある場合は、新しいものが古いものを置き換えます)。 自動的に保存するときは、最後のホスト名が使用されます。
filename (str) – 読み込むファイル名
IOError
– ファイル名が読めなかった場合
load_system_host_keys
(filename=None)¶
システムの(読み取り専用の)ファイルからホストキーを読み込みます。
このメソッドは複数回呼び出すことができます。
filename
None
のままにしておくと、OpenSSHが使用するユーザーのローカルな「既知のホスト」ファイルからキーを読み取ろうとしますが、ファイルが読み取れない場合でも例外は発生しません。 これはおそらく posix でしか使えないでしょう。
filename (str) – 読み込むファイル名、または None
IOError
-ファイル名が指定されていて、そのファイルが読めなかった場合
open_sftp
()¶
SSHサーバーでSFTPセッションを開きます。
a new SFTPClient
session object
save_host_keys
(filename)¶
ホストキーをファイルに戻して保存します。 保存されるのはload_host_keys
load_system_host_keys
で読み込まれたホストキーは保存されません。
filename (str) – 保存先のファイル名
IOError
– ファイルの書き込みができなかった場合
set_log_channel
(name)¶
ロギング用のチャンネルを設定します。
name (str) – logging用の新しいチャンネル名
set_missing_host_key_policy
(policy)¶
既知のホストキーのないサーバーに接続するときに使用するポリシーを設定します。
具体的には。
- ポリシーとは「ポリシークラス」(またはそのインスタンス)のことで、
MissingHostKeyPolicy
RejectPolicy
AutoAddPolicy
WarningPolicy
、またはユーザーが作成したサブクラスなどがあります。 - ホストキーは、クライアントオブジェクトのキャッシュされたホストキー構造(
load_system_host_keys
load_host_keys
によって操作されるもの)に現れたときに知られます。
policy (MissingHostKeyPolicy) – 以前に知られていなかったサーバーからホストキーを受け取ったときに使用するポリシー
classparamiko.client.
WarningPolicy
。