GNU/Linux >> Tutoriales Linux >  >> Linux

4 formas de transferir archivos entre sistemas remotos y locales a través de SSH

Tarde o temprano, se encontrará en una situación en la que tendrá que cargar el archivo en el servidor remoto a través de SSH o copiar un archivo desde él.

Hay varias formas de transferir archivos a través de SSH. Voy a discutir los siguientes métodos aquí:

  1. scp:Comando heredado que está en desuso
  2. rsync:comando popular para la sincronización de archivos
  3. sshfs:Montaje del directorio remoto sobre SSH
  4. clientes sftp:herramienta GUI para acceder a archivos a través de SFTP

Para una transferencia de archivos exitosa a través de SSH, debe

  • para tener acceso SSH entre las dos máquinas
  • para conocer el nombre de usuario y la contraseña en la máquina remota
  • Dirección IP o nombre de host (en la misma subred) de la máquina remota

Aparte de eso, veamos los métodos para copiar archivos entre sistemas remotos a través de SSH.

Método 1:use el comando scp para copiar archivos a través de SSH

He leído que scp quedará obsoleto. Aún así, es mi herramienta favorita para transferir archivos entre sistemas a través de SSH. ¿Por qué? Porque su sintaxis es similar al comando cp.

Veamos cómo usar el comando scp.

Copiar archivos del equipo remoto a su equipo local

Aquí está el escenario. Desea copiar archivos del sistema Linux remoto al sistema conectado actualmente.

Aquí hay una sintaxis genérica que copia el archivo del directorio de inicio del usuario en el sistema remoto al directorio actual de su sistema conectado localmente.

scp [email protected]_address:/home/username/filename .

¿Ves la similitud con el comando cp? Es casi lo mismo, excepto que debe especificar el nombre de usuario y la dirección IP con dos puntos (:).

Ahora, déjame mostrarte un ejemplo real de este comando.

En el ejemplo anterior, copié el archivo remote.txt desde el /home/abhishek/my_file directorio en el sistema remoto al directorio actual de la máquina local.

Esto debería darle una pista de que debe saber la ubicación exacta del archivo en el sistema remoto. La finalización de pestañas no funciona en sistemas remotos.

Copiar archivos de su equipo local al equipo remoto

El escenario cambia ligeramente aquí. En este, está enviando un archivo local al sistema remoto a través de SSH usando scp.

Esta es una sintaxis genérica que copiará el nombre del archivo en el directorio de inicio del nombre de usuario en el sistema remoto.

scp filename [email protected]_address:/home/username

En el ejemplo anterior, copié local.txt archivo del directorio actual al directorio de inicio del usuario abhishek en el sistema remoto.

Luego inicié sesión en el sistema remoto para mostrar que el archivo realmente se había copiado.

También puedes copiar directorios

¿Recuerdas que te dije que me gusta scp por su similitud con el comando cp?

Al igual que el comando cp, también puede usar scp para copiar el directorio a través de SSH. La sintaxis también es similar al comando cp. Solo tienes que usar el -r opción.

scp -r source_dir [email protected]_address:/home/username/target_dir

Puedes hacer mucho más con él. Lea algunos ejemplos más del comando scp en este tutorial:

Método 2:use rsync para copiar archivos y directorios a través de SSH

Dado que scp está en desuso, rsync es la siguiente mejor herramienta para copiar archivos entre sistemas remotos a través de SSH. En realidad, es mejor que scp en muchos términos.

La sintaxis del comando es la misma que scp. Las versiones anteriores de rsync tenían que usar rsync -e ssh pero ese ya no es el caso.

Copiar archivos desde la máquina remota a su máquina local

Supongamos que desea copiar un archivo del directorio de inicio del usuario en el sistema remoto al directorio actual de su sistema conectado localmente.

rsync [email protected]_address:/home/username/filename .

Tomemos el mismo ejemplo que viste con scp. Estoy copiando el archivo remote.txt desde el /home/abhishek/my_file directorio en el sistema remoto al directorio actual de la máquina local.

Copiar archivos de su equipo local al equipo remoto

Aquí hay una sintaxis genérica que copiará el archivo en el directorio de inicio del nombre de usuario en el sistema remoto.

rsync filename [email protected]_address:/home/username

Es hora de ver el ejemplo del mundo real. Estoy copiando local.txt archivo del directorio actual al directorio de inicio del usuario abhishek en el sistema remoto.

¿Qué hay de copiar directorios con rsync?

Es lo mismo. Solo usa -r opción con rsync para copiar el directorio completo a través de SSH entre sistemas remotos.

rsync -r source_dir [email protected]_address:/home/username/target_dir

Echale un vistazo a éste ejemplo. Copio todo el directorio my_file del sistema remoto al sistema local.

rsync es una herramienta versátil. Es esencialmente una herramienta para 'sincronizar recursivamente' el contenido entre dos directorios y bastante popular para hacer copias de seguridad automatizadas.

Método 3:Usar SSHFS para acceder a archivos desde un sistema remoto a través de SSH

También hay SSHFS (sistema de archivos SSH) que se puede usar para acceder a archivos y directorios remotos. Sin embargo, esto no es muy conveniente solo para copiar archivos.

En este método, monta el directorio remoto en su sistema local. Una vez montado, puede copiar archivos entre el directorio montado y el sistema local.

Es posible que primero deba instalar sshfs en su sistema local utilizando el administrador de paquetes de su distribución.

En Debian y Ubuntu, puede usar el siguiente comando:

sudo apt install sshfs

Una vez que haya instalado sshfs en su sistema, puede usarlo para montar el directorio remoto. Sería mejor crear un directorio dedicado para el punto de montaje.

mkdir mount_dir

Ahora monte el directorio deseado en la máquina remota de esta manera:

sshfs [email protected]_address:path_to_dir mount_dir

Una vez que esté montado, puede copiar archivos en este directorio o desde este directorio como si estuviera en su propia máquina local.

cp local_file mount_dir

Recuerde que ha montado este archivo. Una vez que haya terminado su trabajo, también debe desmontarlo:

umount mount_dir

Aquí hay un ejemplo donde monté el my_file directorio del sistema remoto al remote_dir directorio en el sistema local. Copié el remote.txt archivo al sistema local y luego desmontó el directorio.

Método 4:Use un cliente SFTP basado en GUI para transferir archivos entre sistemas remotos

Como último recurso, puede utilizar un cliente FTP para transferir archivos entre sistemas locales y remotos.

FileZilla es uno de los clientes FTP multiplataforma más populares. Puede instalarlo fácilmente en su sistema local.

Una vez instalado, vaya a Archivo->Administrador del sitio y agregue los detalles del sistema remoto, como la dirección IP, el número de puerto SSH, el nombre de usuario y la contraseña.

Una vez que se conecta, puede ver una vista de ventana dividida que muestra el sistema de archivos local a la izquierda y el sistema de archivos remoto a la derecha.

Para transferir el archivo, arrastre y suelte los archivos de izquierda a derecha o de derecha a izquierda. Aparece una barra de progreso en la parte inferior.

¿Qué método prefieres?

¡Bien! Mostré varios métodos de línea de comandos y GUI que se pueden usar para copiar archivos a través de SSH.

Ahora depende de usted decidir qué método usar aquí. Comente su método preferido para transferir archivos a través de SSH.


Linux
  1. Cómo transferir archivos entre máquinas locales y remotas usando el protocolo SFTP

  2. Comando SCP Linux:cómo transferir archivos SSH de remoto a local

  3. Uso del protocolo SFTP para transferir archivos entre máquinas locales y remotas

  4. ¿La diferencia entre /opt y /usr/local?

  5. Copie archivos con SCP y Rsync

Cómo transferir archivos con Rsync a través de SSH

SSHFS:Cómo montar sistemas de archivos remotos a través de SSH

Transferir archivos entre Windows y Linux utilizando su red local

Cómo transferir archivos con Rsync a través de SSH

Transferir archivos y carpetas entre computadoras con Croc

4 formas de transferir archivos y directorios en Linux