Libro Python Aplicado de Eugenia Bahit. GNU/Linux, ciencia de datos, y desarrollo web

Banner de Python Aplicado

Conexiones remotas (HTTP, FTP y SSH)


Cita con formato IEEE:
E. Bahit, "Conexiones remotas (HTTP, FTP y SSH)", in Python Aplicado, 4th ed., EBRC Publisher, 2022, pp. 133-140.

Cita con formato APA 7:
Bahit, E. (2022). Conexiones remotas (HTTP, FTP y SSH). In Python Aplicado (4th ed., pp. 133-140). EBRC Publisher.

Cita en línea:
(Bahit, 2022)

Otros temas de este capítulo:

Conexiones SSH con Paramiko

La biblioteca paramiko debe instalarse de forma adicional, ya que no forma parte de las bibliotecas de Python, ni está mantenida por Python. Se trata de una biblioteca de terceros, que puede instalarse a través de PyPI (el gestor de paquetes de Python). En Debian, también es posible instalarla desde apt (tanto para Python 2 como 3). Sin embargo, se instalará mediante PyPI, ya que es la opción recomendada por el fabricante9.

Requisitos previos

Para poder instalar un paquete desde PyPI, se necesita la herramienta pip de Python. En Debian, el gestor de paquetes de Python se instala mediante apt:

apt install python-pip  # para Python 2, y
apt install python3-pip # para Python 3

Una vez instalado el gestor de paquetes de Python, las instalaciones para Python 2 y para Python 3, se manejarán de forma independiente, por lo cual, habrá que instalar Paramiko en ambas versiones. Esto se hará como root:

pip install paramiko  # para Python 2
pip3 install paramiko # Para Python 3

Uso de Paramiko

Una conexión SSH se inicializa con la creación de un objeto SSHClient:

from paramiko import SSHClient, AutoAddPolicy
      
ssh = SSHClient()

Al igual que con la biblioteca FTP, tanto la conexión como la autenticación, se realizarán de forma separada (y no al construir el objeto), a fin de tener un mayor control sobre las mismas.

Para la autenticación mediante llave pública (en vez de uso de contraseñas), se empleará set_missing_host_key_policy, a fin de localizar las llaves y facilitar el intercambio de las mismas:

ssh.set_missing_host_key_policy(AutoAddPolicy())

Normalmente, el uso de este método no debería ser necesario, y bastaría con emplear load_system_host_keys:

ssh.load_system_host_keys()
[9] http://www.paramiko.org/installing.html