Cómo copiar los archivos con SSH y PIPE a un host remoto

Secure Shell ( SSH) es una forma segura de conectarse a una máquina remota, como un servidor desde el cliente remoto. Las máquinas cliente y servidor deben tener SSH instalado. Una vez que se crea la conexión, puede transferir los archivos del cliente al host remoto o viceversa.

Una forma confiable de copiar los archivos de una máquina a otra es usar un protocolo de copia segura (SCP). Con SCP, puede copiar los archivos y carpetas del cliente al host remoto con una línea de código. De manera similar, puede descargar los archivos desde el host remoto a la máquina local. Esta guía cubre los pasos para usar SCP para copiar los archivos con SSH y transferirlos al host remoto.

Cómo usar SCP para copiar y canalizar los archivos a través de SSH al host remoto

SSH y SCP trabajan juntos. SSH crea una conexión segura entre un cliente y un servidor. Por otro lado, SCP resulta útil como protocolo de transferencia de archivos de red que facilita una forma segura de transferir los archivos entre un host local y remoto. SCP se basa en la autenticación creada por SSH para autorizar la transferencia de archivos.

Hay diferentes opciones para usar con SCP; puede consultar su página man. Mientras tanto, veamos las diferentes formas de usar SCP para la transferencia de archivos:

1. Copiar archivos del cliente local al servidor remoto

Al conectarse a un servidor, es posible que deba transferir los archivos al servidor remoto. En ese caso, SCP hace el trabajo. Si tiene el nombre de usuario y la contraseña del host remoto, puede usar la siguiente sintaxis para transferir los archivos:

$ scp / ruta / destino / nombre de usuario del archivo para transferir @ IP del servidor: / ruta para guardar /

Aquí hay un ejemplo. Ejecutar el comando requiere la autenticación SSH de la clave antes de continuar:

Una vez que autentique la clave, debe ingresar la contraseña del servidor remoto para conectarse a él y transferir los archivos.

Una vez que se transfiere el archivo, se muestra un porcentaje y el nombre del archivo en la pantalla para confirmar que el archivo se transfirió correctamente. Transferimos el archivo1 al host remoto.

Accediendo a nuestro servidor, podemos listar el contenido del directorio para verificar si el archivo se transfiere. En este caso, nuestro archivo se transfiere desde el cliente local al servidor remoto.

$ ls

Para transferir varios archivos, agregue sus nombres separados por un espacio. Los archivos deben estar en el mismo directorio. Ejecute el comando, como el siguiente, y SCP transferirá todos los archivos incluidos al host remoto:

Cuando la transferencia es exitosa, el terminal muestra el porcentaje de transferencia y todos los archivos, como en el siguiente caso:

Al copiar los archivos, puede nombrarlos de manera diferente cuando se copian en el host remoto. Por ejemplo, en el siguiente ejemplo, copiamos un archivo llamado linuxhint.sh y lo guardamos como coied.sh. El truco es agregar la ruta donde desea guardar el archivo copiado y el nombre preferido para guardarlo, como se muestra en la siguiente ilustración:

Copiar un directorio es lo mismo que copiar un archivo. La diferencia es que para el directorio, debe agregar su ruta completa en el host local. En el siguiente ejemplo, estamos copiando /copy-me:

2. Copia de archivos desde el servidor remoto y PIPE al cliente local

La sintaxis para copiar los archivos del host remoto y almacenarlos en el host local es ligeramente diferente. Comienza con la conexión SSH al servidor remoto y la ruta al archivo o directorio que desea copiar. Por último, agregue la ruta para copiar el archivo en el host local.

$ scp < a href = «mailto:nombre de usuario@ip-del-servidor» > nombre de usuario @ ip-del-servidor </ a > : / ruta / al archivo / local-host / ruta al archivo guardado

Aquí hay un ejemplo de cómo copiar un archivo llamado linuxhint al directorio actual en el host local:

Para copiar un directorio, agregue la opción -r , como se muestra en el siguiente ejemplo. Verifique que el directorio remoto se descargue y almacene en la ruta especificada usando el comando ls :

Para guardar el archivo o directorio copiado desde el host remoto con un nombre diferente, agregue la ruta donde desea guardarlo y especifique qué nombre usar, como se muestra a continuación:

Su archivo de destino se copia correctamente y se guarda con el nombre agregado.

Conclusión

SSH admite la creación de una conexión segura a un host remoto. Además, puede transferir los archivos entre un host local y el servidor remoto con SCP. Esta guía presentó varios ejemplos de cómo compartir archivos y directorios entre hosts locales y remotos. ¡Pruébalo!