Pythonを使用してSSH公開鍵認証でAmazon Lightsailへアクセスして、ファイルを設置したい

2024年6月18日

Pythonを使用してSSH公開鍵認証でAmazon Lightsailインスタンスにアクセスし、ファイルを設置するためには、paramiko ライブラリを使用することが一般的です。以下は、基本的な手順です。

  1. paramikoのインストール:
    PythonスクリプトからSSH接続を確立するために paramiko ライブラリをインストールします。

    bash
    pip install paramiko
    
  2. Pythonスクリプトの作成:
    SSH接続とファイル転送を行うPythonスクリプトを作成します。以下は基本的な例です。

    python
    import paramiko
    
    # Lightsailインスタンスの情報
    hostname = 'your-lightsail-ip'
    port = 22
    username = 'your-ssh-username'
    private_key_path = 'path/to/your/private-key.pem'
    
    # SSHクライアントの作成
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # SSH公開鍵認証で接続
    private_key = paramiko.RSAKey(filename=private_key_path)
    client.connect(hostname, port, username, pkey=private_key)
    
    # ファイルのアップロード (例: ローカルのファイルをリモートにコピー)
    local_file_path = 'path/to/local/file.txt'
    remote_file_path = 'path/to/remote/file.txt'
    
    sftp = client.open_sftp()
    sftp.put(local_file_path, remote_file_path)
    sftp.close()
    
    # SSH接続の終了
    client.close()
    
    • your-lightsail-ip: LightsailインスタンスのIPアドレスを指定します。
    • your-ssh-username: LightsailインスタンスのSSHユーザー名を指定します。
    • path/to/your/private-key.pem: ローカルのSSH秘密鍵ファイルへのパスを指定します。
    • path/to/local/file.txt: アップロードしたいローカルのファイルのパスを指定します。
    • path/to/remote/file.txt: リモートに設置したいファイルのパスを指定します。
  3. 実行:
    スクリプトを実行して、SSH接続とファイルのアップロードを行います。

    bash
    python your_script.py
    

これにより、LightsailインスタンスにSSHで接続し、指定したファイルがリモートにアップロードされます。なお、ファイルのアップロード先のディレクトリが存在しない場合は、適切にディレクトリを作成してからアップロードするようにしてください。

未分類

Posted by ぼっち