Cómo Subir un Archivo por SSH usando Python

Si necesitas subir archivos a un servidor remoto utilizando SSH en Python, la biblioteca paramiko es una excelente opción. En este post, te guiaremos a través de los pasos necesarios para configurar y ejecutar un script que te permitirá transferir archivos de manera segura.


Paso 1: Instalar paramiko

Primero, asegúrate de tener instalada la biblioteca paramiko. Puedes instalarla usando pip:

pip install paramiko

Paso 2: Escribir el Script en Python

A continuación, te mostramos un ejemplo de cómo subir un archivo utilizando paramiko:

import paramiko

# Configuración de la conexión SSH
hostname = 'tuserver.com'
port = 22
username = 'tusuario'
password = 'tupassword'

# Ruta del archivo local que deseas subir
local_file_path = '/ruta/local/al/archivo.txt'

# Ruta remota donde deseas guardar el archivo
remote_file_path = '/ruta/remota/al/archivo.txt'

# Crear una instancia de SSHClient
ssh = paramiko.SSHClient()

# Automáticamente añade la clave del servidor si no está en `known_hosts`
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Conectar al servidor
ssh.connect(hostname, port, username, password)

# Usar SFTP para subir el archivo
sftp = ssh.open_sftp()
sftp.put(local_file_path, remote_file_path)

# Cerrar la conexión SFTP
sftp.close()

# Cerrar la conexión SSH
ssh.close()

print(f"Archivo {local_file_path} subido a {remote_file_path} en {hostname}")

Explicación del Código:

  • hostname: La dirección del servidor al que te estás conectando.
  • port: El puerto SSH, generalmente es el 22.
  • username: El nombre de usuario para la conexión SSH.
  • password: La contraseña para la conexión SSH.
  • local_file_path: La ruta del archivo en tu máquina local que deseas subir.
  • remote_file_path: La ruta en el servidor remoto donde deseas guardar el archivo.

Paso 3: Ejecutar el Script

Guarda el script en un archivo, por ejemplo subir_archivo.py, y ejecútalo:

python subir_archivo.py

Consideraciones Adicionales:

  • Seguridad: Si estás manejando contraseñas en el script, considera usar variables de entorno o un gestor de secretos para mayor seguridad.
  • Claves SSH: Si prefieres no usar contraseñas, puedes configurar autenticación por clave SSH y modificar el script para usar key_filename en lugar de password.

Este script te permitirá subir archivos a un servidor remoto de manera segura utilizando SSH. ¡Esperamos que esta guía te sea útil para automatizar tus transferencias de archivos!

Leave a Reply

Your email address will not be published. Required fields are marked *