公開鍵認証を使用してリモートサーバーにアクセスする

2024年6月18日

了解しました。公開鍵認証を使用してリモートサーバーにアクセスする場合、パスワードを入力することなくセキュアな接続が可能です。以下は、公開鍵認証を使用してリモートサーバーのメモリ情報を定期的に取得するPythonスクリプトの例です。

まず、ローカルマシンにSSHキーペアを作成し、公開鍵をリモートサーバーに転送します。

  1. SSHキーペアの生成:
    ローカルで以下のコマンドを実行してSSHキーペアを生成します。

    bash
    ssh-keygen -t rsa -b 2048
    

    デフォルトのファイルパスに鍵が生成されます。

  2. 公開鍵の転送:
    生成された公開鍵をリモートサーバーに転送します。以下のコマンドで転送できます。

    bash
    ssh-copy-id <REMOTE_USER>@<REMOTE_SERVER_IP>
    

    または、手動で公開鍵(~/.ssh/id_rsa.pub)の内容をリモートサーバーの~/.ssh/authorized_keysファイルに追加することもできます。

次に、公開鍵認証を使用したPythonスクリプトを作成します。

python
import paramiko
import time

def get_remote_memory_info(hostname, username, private_key_path):
# SSHクライアントの作成
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
# 秘密鍵の指定
private_key = paramiko.RSAKey(filename=private_key_path)

# SSHでリモートサーバーに接続
ssh.connect(hostname, username=username, pkey=private_key)

while True:
# メモリ情報を取得
stdin, stdout, stderr = ssh.exec_command(“systeminfo | find “Total Physical Memory"""")


未分類

Posted by ぼっち