informatica:programacion:python:modulos:paramiko
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:python:modulos:paramiko [2020/11/10 13:20] – [Conexión SSH anidada] tempwin | informatica:programacion:python:modulos:paramiko [2020/11/10 13:54] (actual) – [Transferencia de ficheros] tempwin | ||
|---|---|---|---|
| Línea 7: | Línea 7: | ||
| Paramiko permite que el usuario se valide tanto por contraseña como por par de llaves, | Paramiko permite que el usuario se valide tanto por contraseña como por par de llaves, | ||
| + | ===== Instalación ===== | ||
| + | |||
| + | Se puede instalar mediante '' | ||
| ===== SSH ===== | ===== SSH ===== | ||
| Línea 18: | Línea 21: | ||
| # Establecer política por defecto para localizar la llave del host localmente | # Establecer política por defecto para localizar la llave del host localmente | ||
| + | # Si no lo indicamos y queremos conectarnos mediante usuario y contraseña, | ||
| + | # Paramiko mostrará una excepción ' | ||
| + | # queremos conectarnos no dispone de la clave pública del equipo local | ||
| ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | ||
| Línea 26: | Línea 32: | ||
| entrada, salida, error = ssh_client.exec_command(' | entrada, salida, error = ssh_client.exec_command(' | ||
| - | # Mostrar la salida estándar en pantalla | + | # Mostrar la salida estándar en pantalla |
| - | print(salida.read()) | + | print(salida.readlines()) |
| # Cerrar la conexión | # Cerrar la conexión | ||
| Línea 51: | Línea 57: | ||
| print(salida.read()) | print(salida.read()) | ||
| ssh_client.close() | ssh_client.close() | ||
| + | </ | ||
| + | |||
| + | ==== Conexión mediante clave pública ==== | ||
| + | |||
| + | Para conectarse evitando la utilización de una contraseña, | ||
| + | |||
| + | <code python> | ||
| + | import paramiko | ||
| + | |||
| + | HOST = ' | ||
| + | PUERTO = 372 | ||
| + | USUARIO = ' | ||
| + | |||
| + | datos = dict(hostname=HOST, | ||
| + | ssh_client = paramiko.SSHClient() | ||
| + | |||
| + | ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | ||
| + | ssh_client.connect(**datos) | ||
| + | entrada, salida, error = ssh_client.exec_command(' | ||
| + | print(salida.read()) | ||
| + | ssh_client.close() | ||
| + | </ | ||
| + | |||
| + | Si queremos utilizar otra clave, la tenemos que especificar a la hora de hacer la conexión: | ||
| + | |||
| + | <code python> | ||
| + | ssh_client.connect(hostname = " | ||
| </ | </ | ||
| ===== Conexión SSH anidada ===== | ===== Conexión SSH anidada ===== | ||
| Línea 60: | Línea 93: | ||
| import sys | import sys | ||
| import subprocess | import subprocess | ||
| - | # | + | |
| - | # we instantiate a new object referencing paramiko' | + | |
| - | # | + | |
| jumphost = " | jumphost = " | ||
| server = " | server = " | ||
| + | # we instantiate a new object referencing paramiko' | ||
| vm = paramiko.SSHClient() | vm = paramiko.SSHClient() | ||
| vm.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | vm.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | ||
| Línea 86: | Línea 118: | ||
| jhost.close() | jhost.close() | ||
| vm.close() | vm.close() | ||
| + | </ | ||
| + | |||
| + | ===== Transferencia de ficheros ===== | ||
| + | |||
| + | <code python> | ||
| + | import paramiko | ||
| + | |||
| + | ssh = paramiko.SSHClient() | ||
| + | ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | ||
| + | ssh.connect(hostname = "", | ||
| + | |||
| + | sftp_client = ssh.opensftp() | ||
| + | |||
| + | # Listamos las operaciones que podemos realizar sobre el nuevo objeto | ||
| + | print(dir(sftp_client)) | ||
| + | |||
| + | # Descargamos un fichero desde servidor al equipo local | ||
| + | sftp_client.get("/ | ||
| + | |||
| + | # Subimos un fichero al servidor SSH | ||
| + | sftp_client.put("/ | ||
| + | |||
| + | sftp_client.close() | ||
| + | ssh.close() | ||
| </ | </ | ||
informatica/programacion/python/modulos/paramiko.1605010858.txt.gz · Última modificación: por tempwin
