LLibreria Paramiko

Llibreria python que permet executar comandes via ssh. La documentació es troba a: http://www.lag.net/paramiko/docs/

Instal·lació:

$ sudo aptitude install python-paramiko python-crypto

Exemple de funcionament de paramiko

Primer s'ha de carregar la llibreria amb import. A continuació s'ha de crear una instància per fer la connexió amb el mètode SSHClient(). Desprès s'ha de carregar la clau del servidor ssh amb load_system_host_keys() -a l'exemple que es dona a continuació la línia està comentada i se substitueix per una política d'afegir automàticament la clau enviada pel servidor)-. El següent pas és connectar-se al servidor ssh amb connect('servidor_ssh', port=port, username='usuari', password='contrasenya'). A continuació ja es pot executar la comanda amb exec_command('comanda'). I finalment només resta tancar la connexió amb close().

import paramiko

def openerp_install():
    client = paramiko.SSHClient()
    #client.load_system_host_keys(filename='host.key')
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect('localhost', port=22, username='usuari', password='contrasenya')
    stdin, stdout, stderr = client.exec_command('/home/usuari/hola.sh')
        
    for line in stdout:
        print 'Salida'
        print '...' + line.strip('\n')
        
    for line in stderr:
        print 'Error'
        print '...' + line.strip('\n')
        
    client.close()

Creació de l'arxiu d'emmagatzemament de la clau del servidor ssh

Per crear l'arxiu on s'emmagatzema la clau del servidor ssh s'han de seguir els següents passos:

1. Obrir una terminal python. 2. Importar la llibreria paramiko.

>>> import paramiko

3. Crear una instància per fer la connexió:

>>> client=paramiko.SSHClient()

4. Establir la política d'acceptació automàtica de la clau:

>>> client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

5. Connectar-se al servidor ssh:

>>> client.connect('localhost', port=22, username='usuari', password='contrasenya')

6. Desar la clau en un fitxer: {{{>>> client.save_host_keys('host.key') }}} 7. Tancar la connexió:

>>> client.close()

8. Sortir:

>>> exit()


CategoryPython

Python/Paramiko (last edited 2012-06-07 06:27:46 by zikzakmedia)

Contenidos creados por el equipo de Zikzakmedia. Creative Commons By-NC-SA

PythonZikzakmedia