Copiar archivos a remoto desde terminal y viceversa (COMANDO SCP)

Solapas principales

Los que vamos subiendo y bajando archivos a servidores sabemos lo vulnerables que son los datos a "sniffeos" , lo fácil que es sacar una clave ftp desde una red local etc etc etc. Bueno aquí un método más seguro para la transferencia de archivos entre servidores ......

Ayer uno de los servidores que uso para mandar copias de seguridad tenía problemas de montado con un hdd y aproveché para mandarme un backup ( de unos 14gb ) por scp.

Aquí a modo ejemplo subo una imagen iso debian, de mi notebook al servidor:

Secure Copy o SCP es un medio de transferencia segura de archivos entre un host local y un servidor remoto o entre dos hosts remotos, usando el protocolo Secure Shell (SSH) Al igual que ssh, scp nos pedirá autenticación para acceder a la máquina. También se puede crear el par de claves, publica y privada para que el proceso de autenticación sea automático, es decir, que no nos solicite el password. Especificando en el archivo authorized_keys del servidor remoto la clave publica del servidor local. A continuación indico un par de ejemplos para copiar archivos entre varios servidores, primero copiando archivos de un servidor remoto a nuestro ordenador local y copiando un archivo de nuestro ordenador o servidor local a un servidor remoto.

Copiar archivos de un servidor remoto a local

scp -P 22 -pr  USUARIO@IP_SERVER_REMOTO:/path/server/remoto /path/server/local

Copiar archivos de Pc local a servidor remoto

scp -P 22 -pr /path/local/pc/ USUARIO@IP_SERVER_REMOTO:/path/server/remoto 

Modificadores:

-P numero de puerto, en caso que use un puerto diferente al de por defecto, 22. Ejemplo -P 22300.

-p Mantiene los registros de fecha de creación y última modificación,así como los permisos.

-r Copia recursivamente los directorios enteros.

Habría que poner este modificador antes de indicar el usuario y la ip. Ejemplo:

scp  -P 22300 -pr  USUARIO@IP_SERVER_REMOTO:/path/server/remoto /path/server/local

Nota: el puerto 22300, es un puerto aleatorio que estoy usando para este ejemplo. Copiar un archivo del servidor local a un servidor remoto El comando scp también se puede utilizar para copiar archivos de nuestro servidor local a un servidor remoto. Tan sólo hay que especificar antes del usuario y el host remoto, el path del archivo o directorio que queremos copiar. En el siguiente ejemplo, voy a copiar mi clave publica a el servidor remoto.

scp /home/pedro/.ssh/id_rsa.pub  USUARIO@IP_SERVER_REMOTO:/home/pedro/clave_publica.txt

Como en el caso anterior, también se puede poner el modificador -P justo después de escribir el comando scp para indicar que se conecte por otro puerto diferente al predeterminado.

scp -P 45459 /home/pedro/.ssh/id_rsa.pub  USUARIO@IP_SERVER_REMOTO:/home/pedro/clave_publica.txt

Como siempre para cualquier duda desde la misma terminal podemos usar man o help , para tener más datos sobre el software.

$ scp --help
$ man scp

Fuente Original

Artículos relacionados:

http://fruteroloco.es/content/scp-ambiguous-target-soluci%C3%B3n