SCP protege sus datos mientras los copia a través de una conexión SSH (Secure Shell) cifrando los archivos y las contraseñas. Por lo tanto, incluso si se intercepta el tráfico, la información sigue cifrada.
Cuando trabaje con archivos remotos, especifique siempre las especificaciones del usuario y del host.
Asegúrese de usar una cuenta con acceso de lectura a los archivos que desea copiar en el sistema de origen. Además, debe usar una cuenta con acceso de escritura al directorio donde se guardarán los archivos en el sistema de destino.
Cada opción tiene una forma corta de un solo carácter y un equivalente descriptivo más largo.
-1 | Usar el protocolo 1. |
-2 | Usar el protocolo 2. |
-4 | Use solo direcciones Ipv4. |
-6 | Use solo direcciones IPv6. |
-B | Ejecutar en modo por lotes, deshabilitando todas las consultas para la entrada del usuario. |
-b buffer_size | Especifique el tamaño del búfer utilizado para la transferencia de datos. Si no se especifica, utiliza el valor predeterminado:32768 bytes. |
-C | Habilitar compresión. |
-c cipher | Seleccione el cifrado para el cifrado de datos. Si no se especifica, SCP usa el valor predeterminado:'AnyStdCipher'. |
-D debug_level | Establezca el nivel de depuración (1, 2, 3 o 99). |
-d | Copie el archivo, solo si el directorio de destino ya existe. |
-F file | Especifique un archivo de configuración alternativo para SSH . |
-h | Mostrar una lista de opciones de comando. |
-i file | Especifique el archivo del que leer la identidad para la autenticación de clave pública. |
-l limit | Limite el ancho de banda (especifique el límite en kbit/s). |
-o ssh_option | Establecer opciones para SSH en formato ssh_config. |
-P port | Especifique el puerto al que conectarse. Si no se especifica, SCP usa el puerto 22. |
-q | Ejecute SCP en modo silencioso. |
-Q | Deshabilitar la visualización de cualquier estadística de transferencia de archivos. |
-r | Copia recursivamente. |
-S program | Utilice un programa específico para la conexión cifrada. |
-u | Elimine el archivo de origen una vez que se complete la copia. |
-v | Habilite el modo detallado, que establece el nivel de depuración en 2. |
Ejemplos de comandos SCP
Para comprender mejor esta útil utilidad, eche un vistazo al siguiente scp
ejemplos de comandos.
Copiar un archivo del servidor local al remoto
En el siguiente ejemplo, copiamos un archivo de muestra de un host local a un servidor remoto:
scp Desktop/sample_example.txt [email protected]:/home/remote_dir
El comando incluye la siguiente información:
Desktop/sample_example.txt
- el nombre del archivo que se copia y su ubicación.
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto.
/home/remote_dir
– la ubicación donde almacenar el archivo copiado.
Copiar un archivo desde un servidor remoto al host local
Para copiar un archivo de muestra de un host remoto a un host local, ejecutamos:
scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop
La información proporcionada es
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto desde donde se encuentra actualmente el archivo.
/home/remote_dir/sample_example.txt
- el nombre del archivo que se copia y su ubicación.
home/Desktop
– la ubicación donde almacenar el archivo copiado.
Copiar un archivo de un servidor remoto a otro
A continuación, veamos cómo copiar un archivo de un servidor remoto a otro servidor remoto usando el scp
comando:
scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop
El comando anterior especifica:
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto desde donde se encuentra actualmente el archivo.
/home/remote_dir/sample_example.txt
- el nombre del archivo que se copia y su ubicación.
[email protected]
– el nombre de usuario y la dirección IP del servidor remoto donde queremos copiar el archivo.
home/Desktop
– la ubicación donde almacenar el archivo copiado en el servidor remoto.
Copiar varios archivos con SCP
SCP le permite copiar varios archivos en un solo comando. Por ejemplo, el siguiente comando copia dos archivos de un host local a un servidor remoto:
scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir
Incluye la siguiente información:
example/sample1.txt
– el nombre y la ubicación del primer archivo que se está copiando.
example/sample2.txt
– el nombre y la ubicación del segundo archivo que se está copiando.
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto que recibe los archivos.
/home/remote_dir
- la ubicación donde almacenar los archivos copiados en el servidor remoto.
Copiar una carpeta del host local al servidor remoto de forma recursiva
Aparte de los archivos, scp
también puede copiar carpetas de forma segura hacia o desde servidores remotos. El siguiente comando muestra cómo copiar un directorio de muestra a un servidor remoto de forma recursiva:
scp -r example [email protected]:/home/remote_dir
El comando incluye:
-r
– la opción para copiar la carpeta recursivamente.
example
– el nombre de la carpeta que se está copiando desde el servidor local.
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto que recibe la carpeta.
/home/remote_dir
- la ubicación donde almacenar la carpeta copiada en el servidor remoto.
Copiar un archivo con SCP usando un puerto específico
De manera predeterminada, SCP usa el puerto 22. Sin embargo, si un sistema remoto está configurado para escuchar solicitudes SSH en un puerto diferente, use el –P
cambie para especificar el puerto.
Por ejemplo, el siguiente comando copia un archivo de un servidor local a uno remoto, utilizando el puerto 2222:
scp -P 2222 Desktop/sample_example.txt [email protected]:/home/remote_dir
Los componentes del comando anterior son:
-P 2222
– usa el puerto 2222.
Desktop/sample_example.txt
- el nombre del archivo que desea copiar y su ubicación.
[email protected]
- el nombre de usuario y la dirección IP del servidor remoto que recibe el archivo.
/home/remote_dir
- la ubicación donde almacenar el archivo copiado en el servidor remoto.
Copiar un archivo con SCP en modo silencioso
Ejecutando un scp
El comando en modo silencioso significa deshabilitar el medidor de progreso y los mensajes que no son de error para que no se muestren en la salida. Para hacerlo, debe agregar el -q
opción:
scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP en modo detallado
Puede ejecutar scp
en modo detallado agregando -v
opción que establece el nivel de depuración en 2. Al hacerlo, imprime información de depuración en la salida que puede ayudarlo a solucionar problemas.
Agrega el -v
opción después de scp
para habilitar el modo detallado, como en el siguiente ejemplo:
scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP y limitar el ancho de banda
Otra opción útil es limitar el ancho de banda utilizado por scp
comando agregando -l
parámetro. Esto es especialmente útil cuando se copian archivos grandes para evitar que SCP agote el ancho de banda.
Al limitar el ancho de banda, debe especificar el número en Kilobits/s. Tenga en cuenta que 1 byte =8 bits. Por lo tanto, si desea limitar el ancho de banda para SCP a 100 KB/s, el valor de l en kbps sería 800 (100 x 8), como en el siguiente comando:
scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP más rápido
Para acelerar la transferencia de archivos de un servidor a otro, agregue el -C
opción que comprime el archivo mientras se transfiere. Una vez que el archivo llega a su destino, vuelve a su tamaño normal.
scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP utilizando un cifrado específico
De manera predeterminada, SCP usa AES-128 para cifrar archivos. Sin embargo, el -c
La opción le permite cambiar el cifrado que SCP utilizará para cifrar el archivo.
Por ejemplo, para aumentar la seguridad, puede cambiar al cifrado 3des, como en el siguiente ejemplo:
scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP usando IPv4 o IPv6
Puede obligar a SCP a usar solo IPv4 o IPv6 según sus necesidades agregando -4 o -6 atributo.
Para copiar un archivo de muestra de un servidor local a un host remoto solo usando IPv6, ejecutaría:
scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir
Copiar un archivo con SCP conservando los atributos del archivo
Para copiar un archivo con SCP y conservar los atributos del archivo, como los tiempos de modificación y acceso, los modos y los permisos, use -p
opción:
scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir