Paramiko
Paramikoとは?

SSH(Secure Shell)はネットワーク越しに別のコンピュータを安全に遠隔操作するためのプロトコルで、通常は専用のターミナルソフトやSFTPクライアントを通じて人間が手動で操作する。Paramikoを使うと、こうした作業をPythonスクリプトに組み込んで自動化できる。Paramiko自体にSSHv2プロトコルがPythonで実装されており、外部のSSHコマンドに依存せず動作する。
接続の確立にはホスト名、ポート番号、認証情報を指定する。認証方式はパスワード認証と公開鍵認証の両方に対応しており、RSAやECDSAなど複数の鍵方式をサポートする。既知ホスト鍵の確認機能も備え、接続先サーバの正当性を検証できる。サーバ側に特別なソフトウェアを追加する必要はなく、一般的なSSHサーバが動作していれば接続可能である。
接続後はSSHセッションを通じてコマンドを送信し、標準出力や標準エラー出力、終了コードをPython側で受け取れる。ファイル転送にはSFTPのインターフェースが用意されており、アップロード、ダウンロード、一覧取得、削除といった操作が可能である。複数のサーバに順番にログインして同じ処理を実行する運用スクリプトや、ログ収集、ソフトウェア更新の自動化といった用途でよく用いられる。AnsibleなどのIT自動化ツールもParamikoを内部的に利用している。
Python標準ライブラリにはSSH機能が含まれていないため、SSH操作を必要とするプログラムでは外部ライブラリとして導入する。pipでインストールでき、暗号処理にはcryptographyライブラリを依存関係として使用する。Windows、Linux、macOSなど異なる環境でも同一のコードで動作する。ライセンスはLGPLであり、商用プロジェクトへの組み込みも可能である。