Befehle über SSH mit Python ausführen
Die Automatisierung der Befehlsausführung auf Remote-Rechnern ist eine häufige Aufgabe in der Systemadministration. Das Unterprozessmodul von Python kann lokale Befehle verarbeiten, aber was ist, wenn Sie Befehle auf einem Remote-Host über SSH ausführen müssen?
Um diese Herausforderung zu meistern, sollten Sie die Verwendung der Paramiko-Bibliothek in Betracht ziehen. Paramiko bietet einen umfassenden Satz an Tools für die SSH-Kommunikation. Lassen Sie uns untersuchen, wie Sie Paramiko zur Remote-Befehlsausführung verwenden.
Verwendung von Paramiko für die Remote-Befehlsausführung
<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>
Verwendung von SSH-Schlüsseln zur Authentifizierung
Wenn Sie lieber SSH-Schlüssel zur Authentifizierung verwenden möchten, können Sie dies tun, indem Sie den Schlüssel mit paramiko.RSAKey.from_private_key_file() festlegen.
<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>
Beispielverwendung
Zum Beispiel können Sie die Ausgabe eines Remote-Befehls mit dem folgenden Code ausführen und erfassen:
<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>
Durch die Nutzung der Leistung von Paramiko können Sie mühelos Befehle ausführen, Ausgaben abrufen, und behandeln Sie Fehler auf Remote-Rechnern bequem von Ihren Python-Skripten aus.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python Befehle remote über SSH ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!