pythonでSSH接続を使用してサーバーに接続し、コマンドを実行するサンプルコード

2024年6月17日

SSH接続を使用してサーバーに接続し、コマンドを実行するPythonのサンプルコードを以下に示します。このサンプルでは、paramikoモジュールを使用しています。paramikoはSSH接続を操作するためのモジュールです。

まず、paramikoモジュールをインストールします。

bash
pip install paramiko

そして、以下がSSH接続とコマンド実行のサンプルコードです。

python
import paramiko

def ssh_command(server_ip, username, password, command):
    # SSHクライアントのインスタンスを作成
    client = paramiko.SSHClient()

    try:
        # ホストの公開鍵を自動的に収集
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        
        # SSHでサーバーに接続
        client.connect(server_ip, username=username, password=password)

        # コマンドを実行
        stdin, stdout, stderr = client.exec_command(command)

        # コマンドの実行結果を表示
        print("コマンド実行結果:")
        print(stdout.read().decode('utf-8'))

        # エラーがあれば表示
        error_message = stderr.read().decode('utf-8')
        if error_message:
            print("エラー:", error_message)

    except Exception as e:
        print(f"エラー: {e}")
    finally:
        # SSHセッションを閉じる
        client.close()

# サーバーの情報
server_ip = "サーバーのIPアドレス"
username = "SSHユーザー名"
password = "SSHパスワード"

# 実行したいコマンド
command_to_run = "ls /path/to/directory"

# SSH接続とコマンド実行
ssh_command(server_ip, username, password, command_to_run)

このサンプルコードでは、指定されたサーバーにSSH接続し、指定されたディレクトリの中身を表示するlsコマンドを実行しています。サーバーの情報と実行したいコマンドを適切に設定してください。なお、パスワードを平文でコードに埋め込むのはセキュリティ上のリスクがあります。実際の環境では公開鍵認証や安全な認証方式を使用することが推奨されます。

未分類

Posted by ぼっち