Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit Python Befehle remote über SSH ausführen?

Wie kann ich mit Python Befehle remote über SSH ausführen?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 18:10:02509Durchsuche

How Can I Execute Commands Remotely Over SSH Using Python?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn