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_filenameen lugar depassword.
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!