GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

paramiko

paramiko – 主要なネイティブPython SSHv2プロトコルライブラリ

投稿日:

主要なネイティブPython SSHv2プロトコルライブラリ。 http://paramiko.org

パラミコ

パラミコ: Python SSHモジュール
著作権: Copyright(c)2003-2009 Robey Pointer < robeypointer@gmail.com >
著作権: Copyright(c)2013-2018 Jeff Forcier < jeff@bitprophet.org >
ライセンス: LGPL
ホームページ: http://www.paramiko.org/
APIドキュメント: http://docs.paramiko.org
開発: https://github.com/paramiko/paramiko

「パラミコ」は、「パラノイド」と「友人」のエスペラント語の組み合わせです。 これは、リモートマシンへの安全な(暗号化された、認証された)接続のためのSSH2プロトコルを実装するPython 2.7 / 3.4 +のモジュールです。 SSL(別名TLS)とは異なり、SSH2プロトコルは、強力な中央機関によって署名された階層証明書を必要としません。 リモートシェルへの安全なアクセスのためにTelnetとrshを置き換えたプロトコルとしてSSH2を知っているかもしれませんが、このプロトコルには暗号化されたトンネルを介してリモートサービスに任意のチャネルを開く機能も含まれています。

これは完全にPythonで書かれています(ただし、低レベル暗号のサードパーティCラッパーに依存します;これらはしばしばプリコンパイルされています)、GNU一般公衆利用許諾( LGPL )で公開されています。

パッケージとそのAPIは、このリポジトリに付属しているはずのdocsフォルダにかなりよく書かれています。

インストール

ほとんどのユーザーにとって、インストールする推奨方法はpip経由です:

pip install paramiko

詳細な手順については、ParamikoのメインWebサイトの「 インストール中 」ページを参照してください。

移植性の問題

Paramikoは、主に標準のOpenSSH実装でPOSIXプラットフォームをサポートしており、LinuxおよびOS Xで最も頻繁にテストされています。Windowsは同様にサポートされていますが、それほど簡単ではありません。

バグとサポート

バグレポート: ギター
メーリングリスト: paramiko@librelist.com (使用方法の詳細については、 LibreListのWebサイトを参照してください)。
IRC: #paramiko on Freenode

Kerberosサポート

Paramikoには、オプションのKerberos / GSSAPIサポートが付属しています。 このための余分な依存関係については、ParamikoのメインWebサイトのGSS-APIのセクションを参照してください。

デモ

Paramikoにはいくつかのデモスクリプトが付属しています。 おそらく最も簡単なデモはこれです:

import base64
import paramiko
key = paramiko.RSAKey(data=base64.b64decode(b'AAA...'))
client = paramiko.SSHClient()
client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key)
client.connect('ssh.example.com', username='strongbad', password='thecheat')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
    print('... ' + line.strip('\n'))
client.close()

これは、リモートサーバ上でlsを実行した結果を表示します。 ホスト鍵b'AAA...'は、もちろん、ホスト鍵の実際のbase64エンコーディングに置き換えてください。 ホスト鍵検証をスキップすると、接続は安全ではありません!

以下のサンプルスクリプト(demos /)は次第に詳細になります:

demo_simple.py: invoke_shell()を呼び出して、リモートサーバ上で対話形式でコマンドを実行できる端末/ TTYをエミュレートします。 それを貧しい人のSSHコマンドラインクライアントと考えてください。
demo.py: demo_simple.pyと同じですが、秘密鍵を使用して認証することができ、存在する場合はSSHエージェントを使用しようとし、いくつかのAPI呼び出しの長い形式を使用します。
forward.py: SSH転送を介してポート転送を設定するコマンドラインスクリプト。
demo_sftp.py: SFTPセッションを開き、いくつかの簡単なファイル操作を行います。
demo_server.py: ポート2200でリッスンし、 ‘robey’(パスワード ‘foo’)のログインを受け入れ、BBSのふりをするSSHサーバー。 SSHサーバーを作成する非常に簡単なデモであることを意味します。
demo_keygen.py: Paramikoの鍵生成と進歩機能を持つOpenSSH ssh-keygen(1)プログラムに似た鍵生成器。

つかいます

デモスクリプトはおそらく、このパッケージの使い方の最良の例です。 また、doc /フォルダ内のSphinx autodocによって多くのドキュメントが生成されます。

ユニットテストもここにあります:

$ pip install -r dev-requirements.txt
$ pytest

どのコアコンポーネントが正しく動作しているかを検証します。







-paramiko

執筆者: