ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して SSH 経由でコマンドをリモートで実行するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。