informatica:programacion:python:modulos:paramiko
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Paramiko
Paramiko es una implementación en Python del protocolo SSH, ofreciendo funcionalidad de cliente y servidor.
Paramiko permite que el usuario se valide tanto por contraseña como por par de llaves,
Instalación
Se puede instalar mediante pip: pip install paramiko
SSH
Conexión con credenciales
import paramiko # Inicia un cliente SSH ssh_client = paramiko.SSHClient() # Establecer política por defecto para localizar la llave del host localmente ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Conectarse ssh_client.connect('123.456.78.90', 22, 'user', 'secretpassword') # Ejecutar un comando de forma remota capturando entrada, salida y error estándar entrada, salida, error = ssh_client.exec_command('ls -la') # Mostrar la salida estándar en pantalla (en este caso es una lista de líneas) print(salida.readlines()) # Cerrar la conexión ssh_client.close()
Si no queremos que la contraseña quede almacenada en el código, se puede pedir por pantalla para introducirla por teclado:
from getpass import getpass import paramiko clave = getpass('Clave: ') HOST = '123.456.78.90' PUERTO = 372 USUARIO = 'juanperez' datos = dict(hostname=HOST, port=PUERTO, username=USUARIO, password=CLAVE) ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(**datos) entrada, salida, error = ssh_client.exec_command('ls -la') print(salida.read()) ssh_client.close()
Conexión SSH anidada
Si queremos conectarnos a un servidor SSH y después, desde ese servidor, conectarnos a otro.
import paramiko import sys import subprocess jumphost = "192.168.1.10" server = "192.168.1.11" # we instantiate a new object referencing paramiko's SSHClient class vm = paramiko.SSHClient() vm.set_missing_host_key_policy(paramiko.AutoAddPolicy()) vm.connect(jumphost, username='root', password='a') # vmtransport = vm.get_transport() server_addr = (server, 22) #edited# jump_host = (jumphost, 22) #edited# jhost = paramiko.SSHClient() jhost.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #jhost.load_host_keys('/home/osmanl/.ssh/known_hosts') #disabled# jhost.connect(server, username='root', password='a', sock=vmchannel) stdin, stdout, stderr = jhost.exec_command("cat /home/server") # print(stdout.read()) #edited# # jhost.close() vm.close()
informatica/programacion/python/modulos/paramiko.1605011431.txt.gz · Última modificación: por tempwin
