ホームページ  >  記事  >  バックエンド開発  >  Python を使用して SSH 経由でコマンドをリモートで実行するにはどうすればよいですか?

Python を使用して SSH 経由でコマンドをリモートで実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 18:10:02464ブラウズ

How Can I Execute Commands Remotely Over SSH Using Python?

Python を使用した SSH 経由のコマンドの実行

リモート マシンでのコマンド実行の自動化は、システム管理の一般的なタスクです。 Python のサブプロセス モジュールはローカル コマンドを処理できますが、SSH 経由でリモート ホスト上でコマンドを実行する必要がある場合はどうすればよいですか?

この課題を克服するには、Paramiko ライブラリの使用を検討してください。 Paramiko は、SSH 通信用の包括的なツール セットを提供します。 Paramiko を使用してリモート コマンド実行を実行する方法を見てみましょう。

リモート コマンド実行に Paramiko を使用する

<code class="python">import paramiko

# Connect to the remote host with username, password, and hostname
ssh = paramiko.SSHClient()
ssh.connect(hostname, username, password)

# Execute a command using exec_command
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(command)

# Handle output and error output
print(ssh_stdout.read().decode())
print(ssh_stderr.read().decode())

# Close the connection
ssh.close()</code>

認証に SSH キーを使用する

認証に SSH キーを使用したい場合は、paramiko.RSAKey.from_private_key_file() を使用してキーを設定することができます。

<code class="python">k = paramiko.RSAKey.from_private_key_file(keyfilename)

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username, pkey=k)</code>

使用例

たとえば、次のコードを使用してリモート コマンドを実行して出力をキャプチャできます。

<code class="python">ssh = paramiko.SSHClient()
ssh.connect("remote_host", "username", "password")
stdin, stdout, stderr = ssh.exec_command("df -h")
output = stdout.read().decode()
ssh.close()

print(output)</code>

Paramiko の機能を活用することで、コマンドを簡単に実行し、出力を取得し、 Python スクリプトを使用してリモート マシンのエラーを快適に処理できます。

以上がPython を使用して SSH 経由でコマンドをリモートで実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。