programacion para paquetes modulos lista librerias libreria instalar estadistica descargar basicas python ssh libraries paramiko pexpect

paquetes - bibliotecas de python para el manejo ssh



modulos y paquetes python (4)

Bibliotecas, Wrappers:

  1. http://www.lag.net/paramiko/

    #!/usr/bin/env python import paramiko from contextlib import contextmanager host = ''192.168.10.142'' username = ''slacker'' password = ''password'' def create_ssh(host=host, username=username, password=password): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: print "creating connection" ssh.connect(host, username=username, password=password) print "connected" yield ssh finally: print "closing connection" ssh.close() print "closed"

1) utiliza el 2) y proporciona algunas funciones de nivel superior. Si el último se adapta a tus necesidades, te sugiero que pruebes 1)

Actualización: 1) se ha ido ahora (2017-09-12)

  1. http://media.commandline.org.uk/code/ssh.txt (uso de ejemplo: https://zeth.net/archive/2008/05/29/sftp-python-really-simple-ssh/ )

    s = ssh.Connection(''example.com'', ''warrior'', password = ''lennalenna'') s.put(''/home/warrior/hello.txt'', ''/home/zombie/textfiles/report.txt'') s.get(''/var/log/strange.log'', ''/home/warrior/serverlog.txt'') s.execute(''ls -l'') s.close()

Nota : Los ejemplos de código anteriores se proporcionan solo para obtener una impresión; el código no está probado.

Voy a escribir el primer código para manejar comandos ssh en python y busqué sobre el stackoverflow y puedo ver que hay varias bibliotecas de python que se pueden usar para manejar comandos pasados ​​a través de ssh, como paramiko , pexpect y quizás algunos otros.

En particular, tendré que leer el contenido de los archivos del servidor remoto, copiar archivos a través de ssh / scp, obtener resultados del servidor remoto después de iniciar el script en el servidor remoto.

Tal vez algunos expertos podrían aconsejar qué biblioteca es mejor y especificar las ventajas o desventajas?


Como no está haciendo nada especial a nivel de protocolo, presumiblemente no necesita que el protocolo se implemente por completo en python, y simplemente podría ejecutar comandos ssh / scp utilizando el módulo de subprocess .

import subprocess subprocess.check_call([''ssh'', ''server'', ''command'']) subprocess.check_call([''scp'', ''server:file'', ''file''])


Intente echar un vistazo a Twisted Conch . Maneja todo lo que quieras. Si solo buscara la transferencia de archivos al estilo de SCP, siempre podría usar el módulo de python secsh-filexfer .


La característica que ninguna de las bibliotecas mencionadas anteriormente proporciona es una conexión simultánea a varios servidores. En la era actual donde los administradores de sistemas necesitan ejecutar comandos en cientos de servidores, las bibliotecas que pueden manejar la ejecución de comandos paralelos son muy importantes. Las dos bibliotecas que conozco son:

  1. Trigger

  2. Parallel-SSH

Trigger es mucho más que un contenedor SSH y más una biblioteca de red, utiliza la API de núcleo retorcido para habilitar operaciones de E / S concurrentes.

Parallel-SSH es una biblioteca que es delgada envoltura sobre Paramiko pero usa Gevent bajo el capó para permitir operaciones concurrentes de E / S