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 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!