Como herramienta, SSH requiere que proporcione una contraseña para el usuario de SSH o una tecla SSH para el host de destino. En este tutorial, exploraremos cómo copiar archivos y directorios utilizando el comando SCP.
Comando SCP
El comando SCP está disponible en cualquier sistema que tenga instalados los paquetes SSH-Client y el servidor. Luego puede invocar el comando SCP con la siguiente sintaxis:
$ scp user@source_host: fuente_filename user@Destino_host: destino_filename
El comando anterior requiere pocos parámetros, como:
Asegúrese de que el usuario especificado tenga los permisos de lectura y escritura en el archivo de destino o directorio del host remoto.
También puede especificar otras opciones en el comando SCP para alterar su comportamiento predeterminado. Las opciones aceptadas incluyen:
Puede verificar las otras opciones ejecutando el siguiente comando:
$ hombre SCP
Nota: Aunque SCP muestra los mensajes descriptivos de los archivos y directorios que está copiando, no le solicitará al sobrescribir los archivos. Por lo tanto, asegúrese de proporcionar nombres únicos para los archivos que copia para evitar la pérdida de datos.
Copiar archivo de host local a remoto
Puede copiar un archivo de su máquina local a un host remoto ejecutando el siguiente comando:
$ scp source_file.EXT user@remoto_addr:/remoto/dir
Por ejemplo, para copiar el archivo hola.directorio de txt a/home/debian/files, podemos ejecutar el siguiente comando:
$ scp hola.txt [email protected]:/home/debian/archivos
El comando le solicitará la contraseña del usuario remoto especificado. Si ha agregado su tecla SSH al host remoto, el comando iniciará sesión automáticamente y transferirá los archivos de destino.
Tenga en cuenta que el comando SCP preservará el nombre de archivo original a menos que se especifique. Por ejemplo, para guardar el archivo en un directorio diferente, puede ejecutar este siguiente comando:
$ scp hola.txt [email protected]:/home/Debian/files/hello_new.TXT
Esto cambiará el nombre de archivo de hola.txt a hello_new.txt en la máquina remota.
Copiar directorio de host local a remoto
Si desea copiar un directorio de su máquina local a un host remoto, use la opción recursiva como se muestra en la siguiente sintaxis:
$ scp -r src_dir user@remoto_host:/path/on/remote/host/
Por ejemplo, para copiar todos los archivos en el directorio /var /logs de la máquina local, puede ejecutar el siguiente comando:
$ scp -r/var/logs/[email protected]:/Home/Debian/Logs
Los indicadores -r le indican al comando SCP que copie el directorio recursivamente. Si el directorio de destino no existe en el host remoto, el SCP lo creará automáticamente.
Copiar archivos del host al host remoto
En algunos casos, es posible que deba copiar archivos de un host remoto a otro host remoto. Puede lograrlo ejecutando el siguiente comando:
$ scp user_1@host_1: src_file user_2@host_2: target_path
El comando copiará los archivos especificados en el parámetro src_file a la ruta especificada en el parámetro Target_Path.
Asegúrese de que ambas máquinas estén en línea y que puedan comunicarse a través de SSH.
Conclusión
Este tutorial lo guía al usar el comando SCP para copiar los archivos y directorios a través de SSH.