Post

Transferencia de ficheros por SSH

SCP

El cliente ssh incluye también el comando “scp” que permite copiar ficheros entre entre equipos mediante ssh y hacerlo de forma equivalente a la utilización local del clásico comando “cp”.

No es necesario que el equipo origen o destino sea el equipo desde el que se ejecuta scp, tanto origen como destino pueden ser equipos a los que pueda acceder el usuario utilizando ssh.

La sintaxis general de scp es:

1
scp [[user@]host1:]file1 [[user@]host2:]file2

Transferir un fichero local a un equipo remoto

1
scp  /etc/resolv.conf alejandroalsa@10.10.10.10:resolv.conf.local

El fichero remoto quedará como /home/alejandroalsa/resolv.conf.local ya que : indica el punto de acceso al equipo (/home/alejandroalsa/ en este caso)

Transferir un fichero desde un equipo remoto a mi equipo local

1
scp alejandroalsa@10.10.10.10:/etc/shadow

Que guardaría el fichero /etc/shadow del equipo remoto con el nombre shadow en el directorio en el que nos encontramos

Transferir un fichero entre dos equipos remotos

1
scp alejandroalsa@10.10.10.10:/etc/hosts alejandroalsa@10.10.10.11:/etc/hosts

Esta opción es muy potente y permite crear sencillos scripts para unificar configuraciones, por ejemplo imaginemos que queremos tener la misma configuración DNS en un conjunto de servidores, podríamos hacerlo de forma sencilla y potente con ssh mediante el siguiente script:

1
2
3
4
5
#!/bin/bash

for i in `seq 1 100`; do
  scp alejandroalsa@servidor1:/etc/resolv.conf 192.168.1.$i:/etc/resolv.conf
done

Bonus track

Si utilizamos pares de claves en las conexiones, scp autocompleta el fichero origen o destino utilizando el doble tabulador

SFTP

Al igual que scp, sftp permite transferir ficheros entre equipos remotos a través de SSH, aunque su principal diferencia es que sftp permite utilizarlo de una forma interactiva, al igual que el tradicional ftp, incluyendo los mismos comandos que éste. scp es mucho más habitual utilizarlo desde línea de comandos, mientras que sftp se puede utilizar bien desde la línea de comandos o a través de uno de los múltiples clientes ftp que lo soportan.

Es importante no confundir sftp (ssh ftp) con ftps que es una extensión del protocolo ftp añadiendo ssl para el cifrado de la conexión.

Curso desarrollado por Alejandro Alfaro Sánchez

This post is licensed under CC BY 4.0 by the author.