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!