Como transferir respaldo a un servidor mediante SSH

¿Qué vamos a hacer?

El objetivo es transferir un respaldo (algún archivo empaquetado y/o comprimido como .tar) a un servidor SSH con dirección IP "X.X.X.X".

NOTA: realmente se puede copiar cualquier tipo de archivo.

¿Cómo se hace?

Para lograr nuestro objetivo usaremos un sistema Linux, Ubuntu 20.04 LTS para ser exactos. 

SSH (Secure Shell) es un protocolo usado para el intercambio de información cliente-servidor de manera segura. Es primordialmente usado para la ejecución de órdenes en una computadora remota, no obstante, para nuestro caso lo usaremos para copiar archivos.

La utilidad scp es un binario dedicado a la copia de archivos entre cliente-servidor usando el protocolo SSH. scp utiliza la misma manera de autentificación que la utilidad ssh, por lo cual, si ya tenemos configurada alguna clave ssh no se nos pedirá acceso, de lo contrario (y sólo en caso de que el servidor esté configurado para ello) se nos pedirá la contraseña de acceso al servidor.

El comando que nos interesa es el siguiente (fallará tras 5 intentos y sólo esperará un segundo por respuesta)

scp -v -o ConnectionAttempts=5 / -o ConnectTimeout=1 ruta_a_respaldo scp://usuario@host:port/ruta

Donde:

  • ruta_a_respaldo: ruta absoluta o relativa del archivo o carpeta a copiar, por ejemplo: /home/ernesto/respaldo.tar
  • usuario: nombre del usuario en el servidor remoto, por ejemplo: ernesto. Se puede omitir y se tratará de conectarse al usuario con el mismo nombre del equipo local.
  • host: dominio o dirección del servidor, por ejemplo: ernestorb.com
  • port: puerto en caso de no estar en el 22 (por defecto), se puede omitir
  • ruta: ruta a donde copiar los archivos indicados en el servidor, por ejemplo: ~/ (directorio de conexión del usuario)

Ejemplo:

1. Verificar archivo a copiar (en mi caso el siguiente archivo)

2. Verificar que servidor esté corriendo (en mi caso 172.25.212.180)
3. Reemplazar los datos con nuestro caso particular (en mi caso scp -v -o ConnectionAttempts=5  -o ConnectTimeout=1 /home/ernesto/respaldo27-05-22_12-00.tar.gz scp://pruebas@172.25.212.180/~)
4. Verificar el log para consultar que todo haya salido bien.
    - En este caso falló, ya que no tenía iniciado el servicio ssh en el servidor. 
    - En caso de éxito debe aparecer algo así




Comentarios