Maison  >  Article  >  développement back-end  >  Comment puis-je automatiser les commandes SSH en Python ?

Comment puis-je automatiser les commandes SSH en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 12:25:29924parcourir

How Can I Automate SSH Commands in Python?

Automatisation des commandes via SSH avec Python

Lors de l'automatisation des tâches de ligne de commande en Python, l'utilisation de subprocess.call() est une approche courante. Cependant, pour les commandes de machine distante nécessitant une connexion SSH, cette méthode est insuffisante.

Automatisation des commandes SSH en Python

Pour automatiser les commandes SSH en Python, un module recommandé est paramiko. Il fournit une interface pour établir des connexions SSH et exécuter des commandes en toute sécurité.

Voici un exemple utilisant 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>

Cela établit une connexion SSH à un serveur distant, en spécifiant l'adresse du serveur, le nom d'utilisateur , et mot de passe. Par la suite, la méthode exec_command() exécute la commande souhaitée, capturant les flux de sortie standard et d'erreurs.

En cas d'authentification par clé SSH, l'extrait de code suivant peut être utilisé :

<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>

Par en spécifiant le nom du fichier clé contenant la clé privée, ce code initie une connexion SSH en utilisant l'authentification par clé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn