Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich SSH-Befehle in Python automatisieren?

Wie kann ich SSH-Befehle in Python automatisieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 12:25:29986Durchsuche

How Can I Automate SSH Commands in Python?

Automatisierung von Befehlen über SSH mit Python

Bei der Automatisierung von Befehlszeilenaufgaben in Python ist die Verwendung von subprocess.call() ein gängiger Ansatz. Für Remote-Maschinenbefehle, die eine SSH-Anmeldung erfordern, reicht diese Methode jedoch nicht aus.

Automatisieren von SSH-Befehlen in Python

Um SSH-Befehle in Python zu automatisieren, ist ein empfohlenes Modul paramiko. Es stellt eine Schnittstelle zum Herstellen von SSH-Verbindungen und zum sicheren Ausführen von Befehlen bereit.

Hier ist ein Beispiel für die Verwendung von Paramiko:

<code class="python">import paramiko

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)</code>

Dadurch wird eine SSH-Verbindung zu einem Remote-Server hergestellt und dabei die Serveradresse und der Benutzername angegeben , und Passwort. Anschließend führt die Methode exec_command() den gewünschten Befehl aus und erfasst Standardausgaben und Fehlerströme.

Im Falle der SSH-Schlüsselauthentifizierung kann das folgende Code-Snippet verwendet werden:

<code class="python">import paramiko

k = paramiko.RSAKey.from_private_key_file(keyfilename)
# OR k = paramiko.DSSKey.from_private_key_file(keyfilename)

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

Von Durch Angabe des Schlüsseldateinamens, der den privaten Schlüssel enthält, initiiert dieser Code eine SSH-Verbindung mithilfe der schlüsselbasierten Authentifizierung.

Das obige ist der detaillierte Inhalt vonWie kann ich SSH-Befehle in Python automatisieren?. 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