¿Cómo puedo transferir archivos de forma segura desde un servidor remoto a mi máquina local utilizando el comando SCP en Linux?
07:13, 10.10.2023
Cuando se gestiona un servidor desde un PC, a menudo es necesario realizar transferencias entre ambas máquinas. Por un lado, puede ser un poco difícil para los nuevos usuarios, ya que Ud no puede simplemente arrastrar archivos desde su servidor y soltarlos en su PC. Por otro lado, hay varias formas de hacerlo, y dominar una de ellas resolverá sus problemas en la mayoría de los casos.
Hoy vamos a dedicar nuestra atención a un enfoque en particular, a saber, el comando SCP en Linux.
Descifrando los comandos SCP: Una guía completa
SCP son las siglas de Secure Copy Protocol (protocolo de copia segura). Es un comando que proporciona una forma segura de copiar archivos entre un servidor remoto y una máquina local a través del protocolo SSH (Secure Shell), a diferencia del comando más básico cp (copiar). Con esto, no sólo puede transferir información de forma segura, sino también tener la tranquilidad de que al enviar datos sensibles nadie puede espiarlos.
Desmitificación de la sintaxis SCP
Como muchos otros comandos, SCP no es un único comando para realizar una única acción. En su lugar, hay un montón de comandos involucrados en la sintaxis SCP, lo que le permite realizar diversas operaciones relacionadas con la transferencia de archivos.
La estructura esencial de la sintaxis SCP es:
scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2
El "src_host" es el archivo o directorio que desea transferir, el "dest_host" indica dónde desea transferir el contenido. Ambos elementos pueden ser locales o remotos, es decir, SCP admite transferencias bidireccionales.
"Opciones" representa diferentes permisos que puedes conceder a su comando. Entre ellos:
- P (mayúscula) - elegir el puerto para conectar el servidor remoto.
- p (minúscula) - añadir la información sobre el momento del tiempo para facilitar la localización de la operación más adelante.
- r - transferir todo el directorio especificado.
- q - añadir esto si no desea recibir ninguna notificación sobre la finalización del procedimiento de transferencia.
- C - comprimir la información durante la copia.
De hecho, el comando SCP es bastante versátil. Además de enviar archivos desde su host remoto a su host local, se puede utilizar a la inversa o para compartir archivos entre 2 hosts remotos.
Antes de profundizar en casos concretos de utilización del comando SCP, es esencial comprobar dos condiciones:
- SSH debe estar presente en cada dispositivo.
- También debe tener acceso root a cada dispositivo.
Los comandos esenciales de SCP desvelados
Mover archivos del host local al servidor remoto
Primero, veamos cómo enviar un archivo o un directorio desde el host local a su servidor remoto. Aplicar:
scp /path/to/local/file username@remote_ip:/path/to/destination
"/path/to/local/file" es la ruta de los archivos que se van a transferir, "username" es el nombre de usuario del servidor remoto, "remote_ip" debe contener la dirección del servidor remoto, "path/to/destination" es la ubicación deseada en el servidor remoto.
Consejo: En lugar de escribir todo el directorio raíz cada vez, puede escribir sólo el signo ~ (tilda) como destino.
También puede utilizar el mismo comando para copiar varios archivos. Por ejemplo, puede copiar todos los archivos del mismo directorio que compartan una extensión común. Para ello, especifique *.[file extension] en lugar del archivo. Para copiar todos los archivos .txt, por ejemplo, escriba *.txt.
scp /path/to/local/*.txt username@remote_ip:/path/to/destination
También puede guardar el archivo con un nombre diferente añadiendo el nombre deseado después del destino.
scp /path/to/local/painauchocolat.txt username@remote_ip:/path/to/destination/croissant.txt
En el ejemplo anterior, el "painauchocolat.txt" se guardará como "croissant.txt".
Transferencia de archivos de remoto a local
El comando correspondiente para enviar archivos desde su servidor remoto a su máquina local se construye de forma similar:
scp username@remote_ip:/path/to/remote/file /path/to/local/destination
Sustituya username, “remote_ip”, “/path/to/remote/file” y “/path/to/local/destination” según corresponda en los casos anteriores.
Consejo: Si sus archivos se encuentran en el directorio personal, no es necesario especificar la ruta. Basta con escribir el nombre del archivo y su ubicación, así como el destino, se establecerán como el directorio personal.
scp username@192.168.137.59:painauchocolat.txt
Con este comando, puede enviar el painauchocolat.txt desde el directorio home de su servidor remoto al directorio home de su ordenador local.
Copia de archivos entre hosts remotos
Lo bueno del protocolo SCP es que no sólo permite copiar archivos entre un host local y uno remoto, sino que también permite el intercambio de archivos entre dos servidores remotos. Para ello, utilice la siguiente sintaxis:
scp username@remote_ip1:/path/to/source/file username@remote_ip2:/path/to/destination
Sustituya username, remote_ip1, remote_ip2, /path/to/source/file, y /path/to/destination respectivamente.
Tenga en cuenta que no necesariamente tiene que ser un usuario idéntico. Puede enviar archivos de una cuenta de usuario a otra introduciendo los nombres de usuario correspondientes.
Gestión de múltiples transferencias de archivos
También puede utilizar SCP para transferir grupos de archivos y directorios completos. Para transferir directorios, tendrá que añadir la opción -r al comando SCP:
scp -r /path/to/local/directory username@remote_ip:/path/to/destination
Si desea copiar distintos archivos de un directorio, sólo tiene que especificar varios nombres de archivo en la ruta de origen. Así:
scp /path/to/local/file1 file2 file3 file_andsoon username@remote_ip:/path/to/destination
Aspectos importantes
Permisos: Asegúrese de que dispone de los permisos necesarios para transferir archivos. Esto tiene que ser el permiso de lectura para los archivos de origen y el permiso de escritura para el directorio final.
SSH: Dado que SSH está implicado en SCP, necesitará la contraseña correspondiente.
Archivos con nombres idénticos: Asegúrese de que no hay archivos en el directorio de destino cuyos nombres sean idénticos a los que está copiando, a menos que quiera que el SCP los sustituya sin preguntarle.
Los dos puntos: No olvide escribir el signo de dos puntos (:) entre las ubicaciones de origen y destino.
La dirección de origen: Si transfiere archivos hacia o desde la dirección de origen, puede omitir especificarla y escribir los nombres de los archivos directamente.
Reflexión final
La transferencia de archivos es una rutina común que es probable que realice en algún momento al tratar con servidores remotos. SCP es una forma común de hacerlo que es bastante conveniente y segura al mismo tiempo. Esperamos que el artículo anterior haya aclarado redundantemente la sintaxis detrás de estas características y no se enfrente a ningún problema al transferir sus archivos. Cuídese.