PythonでSSHを使う最も簡単な方法は?paramikoの導入と使い方を解説
PythonからSSH接続を行う最も手軽な方法は、paramikoというライブラリを使用することです。paramikoはSSH2プロトコルを純粋なPythonで実装したライブラリで、リモートサーバーへの接続やコマンド実行、ファイル転送(SFTP)などを簡単に扱えます。
paramikoのインストール
pipコマンドを使って、以下のようにインストールできます。
$ pip install paramiko
事前準備:SSHキーの設定
paramikoを使用する前に、接続元のホストマシン上でSSHキーが正しく設定されていることを確認してください。また、Pythonスクリプトを実行する際に、そのキーへアクセスできる状態になっている必要があります。
SSHキーの作成方法については、Atlassianが公開している「Creating SSH keys」などのドキュメントを参考にするとよいでしょう。
リモートサーバーへSSH接続してコマンドを実行する
準備が整ったら、以下のコードでリモートサーバーにSSH接続し、コマンドを実行できます。
from paramiko import SSHClient
# SSHクライアントの作成
ssh = SSHClient()
# システムの既知ホストキーを読み込む
ssh.load_system_host_keys()
# リモートサーバーに接続
ssh.connect('example.com', username='user', port=22)
# コマンドを実行
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('ls')
# lsコマンドの出力を表示
print(ssh_stdout.read().decode())
# 接続を閉じる
ssh.close()このコードでは、まずSSHClientオブジェクトを作成し、load_system_host_keys()でローカルマシンの既知ホスト情報を読み込みます。その後、connect()メソッドでサーバーに接続し、exec_command()でlsコマンドを実行しています。
このコードを実行すると、リモートサーバー上のディレクトリ一覧が出力されます。exec_command()は標準入力・標準出力・標準エラー出力の3つのチャネルを返すため、必要に応じてエラー出力も確認できます。
まとめ
paramikoを使えば、わずか数行のコードでPythonからSSH接続を行い、リモートサーバーを操作できます。サーバー管理タスクの自動化やバッチ処理など、さまざまな場面で活用できるので、ぜひ試してみてください。
-
Pythonで文字列が空かどうかを確認する最も洗練された方法とは?
Pythonで文字列が空かどうかを判定する最もシンプルで「Pythonic」な方法は、not 演算子を使うことです。Pythonでは空の文字列は「falsy(偽値)」として扱われ、ブール値のコンテキストでは False と評価されます。そのため、if not string: という条件式だけで空文字列のチェックが可能です。 基本的な使い方 string = if not string: print(Empty String!) 出力 Empty String! このコードを実行すると、変数 string が空であるため、「Empty String!」が出力されます。 空白文字を含む場
-
Pythonで例外をログに記録する最良の方法とは?
Pythonプログラムの開発や運用において、例外(エラー)が発生した際にその詳細をログとして残しておくことは、トラブルシューティングやデバッグを行う上で非常に重要です。Pythonでは標準ライブラリのloggingモジュールを使うことで、例外情報を簡単かつ確実にログへ記録できます。 logging.exceptionメソッドで例外ログを作成する まずloggingモジュールをインポートし、exceptブロック内でlogging.exception()メソッドを呼び出します。このメソッドは、指定したメッセージに加えて、発生した例外の種類やスタックトレース(Traceback)を自動的に付加して