Python - SSH Modules
Fabric
Install
Usage
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from fabric.api import *
env.host_string = 'adresse_ip'
env.user = 'user'
env.password = 'password'
L'équivalent de la commande scp:
Ou en écriture courte:
Vous pouvez envoyer un fichier via SSH en utilisant la méthode put:
Vous pouvez lancer une commande sur un servant distant comme ceci:
Executez des scripts avec les droits super utilisateur:
Paramiko
Install
Usage
Exemple de fonction permettant l'initialisation d'une connexion SSH sur un switch (Avec diffusion de clé préalable):
def connect(user, srv):
print 'SSH Connect on {0}'.format(srv)
try:
conn = paramiko.SSHClient()
conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
conn.connect(srv, username=user)
except:
print 'SSH Connect on {0} Problem'.format(srv)
return 1
return conn
Ensuite on peut l'initialiser et lancer une commande:
Timeout
Il est possible de renseigner une valeur pour le timeout en argument de la fonction connect() (vu plus haut) :
La connection sera donc interrompu si elle n'a pas pu se faire au bout du temps indiqué (en seconde).
Il est aussi possible de mettre une limite sur le temps d'éxécution de la commande ssh. Il y a dans ce cas la 2 possibilités, la première consiste à indiquer un timeout sur la channel de la sortie standard (stdout):
La deuxième méthode consiste à attendre que le signal de fin soit envoyé par la channel de la sortie standard (stdout):