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

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

Susan Sarandon
リリース: 2024-11-04 18:10:02
オリジナル
560 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート