GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo conectar y compartir datos entre dos sistemas Linux

Recibí una solicitud interesante (no de solteros en mi área). Uno de mis lectores me preguntó, ¿cómo se hace para conectar dos cajas de Linux? Supongo que para compartir. Este es un tema que he tocado con frecuencia, pero a menudo indirectamente. Como diría el Comandante Lasard de la Academia de Policía, hay muchas, muchas, muchas, muchas maneras diferentes de hacer esto.

Así que tal vez es hora de un tutorial adecuado. Le mostraré varias formas comunes y sólidas de hacer que dos sistemas Linux se comuniquen a través de la red. Lo haremos en la línea de comando, luego pasaremos a los administradores de archivos y, finalmente, también realizaremos una copia de seguridad de datos remota utilizando una herramienta GUI amigable. Empecemos.

Línea de comando:SSH, SCP

La forma "más fácil" de conectar dos sistemas Linux es usando el protocolo SSH. Es conveniente, seguro y está disponible en prácticamente cualquier sistema Linux. Ahora, en algunos casos remotos [sic], podría haber problemas de interoperabilidad debido a versiones incompatibles de software aquí y allá, pero en general, no debería tener ningún problema.

Un host actúa como servidor (abre el puerto TCP 22 de forma predeterminada). El otro actúa como cliente. Puede utilizar la utilidad de línea de comandos SSH para establecer una conexión con el servidor e incluso ejecutar comandos allí, de forma remota como local, incluidas las tareas administrativas (siempre que tenga los permisos adecuados). O puede usar SCP, para copiar archivos de forma segura del cliente al servidor, o incluso recuperar archivos de los servidores a su host cliente.

Configuración del servidor SSH

Lo demostraré con un servidor Fedora 32 y un cliente Kubuntu 18.04. Primero, necesitamos instalar y configurar el software del servicio SSH. Si bien las instrucciones pueden variar ligeramente de una distribución a otra, en gran medida, lo que ve aquí es prácticamente todo lo que necesita. La única diferencia notable es el nombre del paquete utilizado para identificar el servidor SSH; en Fedora, se presenta como servidor openssh. Si busca un sshd existente (ssh daemon =servicio), realmente no obtendrá nada.

No hay coincidencia para el argumento:sshd
Error:No se pudo encontrar una coincidencia:sshd

sudo dnf search ssh
...
openssh-ldap.x86_64 :Soporte LDAP para el demonio del servidor SSH de código abierto
openssh-server.x86_64 :Un demonio del servidor SSH de código abierto
openssh.x86_64 :Una implementación de código abierto del protocolo SSH versión 2
...

Una vez que haya instalado openssh-server, puede iniciar el servicio. Por lo general, se ejecutará en el inicio de forma predeterminada, pero también puede iniciarlo o reiniciarlo manualmente (ya sea mediante el comando o la secuencia de comandos del servicio de inicio), sin embargo, no se ejecutará si no tiene claves SSH (mediante las cuales el host puede identificarse de forma única).

sshd
sshd re-exec requiere ejecución con una ruta absoluta

/usr/sbin/sshd
/etc/ssh/sshd_config:Permiso denegado

sudo /usr/sbin/sshd
sshd:no hay claves de host disponibles -- saliendo.

Necesitamos generar las claves de host:

sudo ssh-keygen -A
ssh-keygen:generando nuevas claves de host:RSA DSA ECDSA ED25519

Y ahora, openssh-server se ejecutará:

sudo /usr/sbin/sshd

ps -ef|grep ssh
roger 1832 1791 0 15:03 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/gnome-session"
root 3640 1675 0 15:17 ? 00:00:00 sshd:/usr/sbin/sshd [oyente] 0 de 10-100 inicios

Configuración de red

Le mostraré cómo conectar dos cajas en una red local. Los términos y Condiciones aplican. Necesitará que los dos hosts sean accesibles (firewall et al). Abrir un puerto de red puede tener implicaciones de seguridad, menos en la red local, pero más en las redes públicas, como Internetz. Sin embargo, no estoy aquí para hablar sobre la seguridad de sus cosas, simplemente para mostrarle cómo conectar dos cajas en su configuración LAN. Sin embargo, para aquellos más curiosos, puede fortalecer SSH, incluido el acceso no raíz, el uso de puertos no predeterminados, la limitación de inicio de sesión, varias otras restricciones y otras cosas.

Ahora, anote la dirección IP o el nombre de host de su máquina servidor Linux. En las distribuciones "modernas", encontrar la dirección IP no es trivial, porque netstat e ifconfig ya no son geniales, pero se puede hacer. Necesitaremos esto para la parte del cliente de la conectividad.

Línea de comandos:SSH, SCP (continuación)

En el cliente, conéctese a su servidor. La sintaxis será la siguiente:

ssh nombre de usuario@nombre de host

Entonces, prácticamente, en mi ejemplo, esto es:observe la advertencia de conexión por primera vez:

ssh [email protected]
No se puede establecer la autenticidad del host '192.168.2.107 (192.168.2.107)'.
La huella dactilar de la clave ECDSA es SHA256:8Qk//cbC0v3BLuU1FQ/vjABNN34nw1sWANY+hoycHiE.
¿Está seguro de que desea continuar conectándose (sí/no)? sí
Advertencia:'192.168.2.107' (ECDSA) agregado permanentemente a la lista de hosts conocidos.
Contraseña de [email protected]:
Último inicio de sesión:jueves, 17 de septiembre a las 15:03:38 de 2020

Ahora, está "adentro":ahora puede hacer cosas en su servidor. Pero también queremos poder copiar datos de un lado a otro. Usemos SCP entonces. La sintaxis será la siguiente:

scp source nombredeusuario@hostname:destino

El comando scp también toma varios argumentos útiles:puede recorrer carpetas, conservar permisos, conectarse a un puerto no predeterminado y más. Curiosamente, quizás irónicamente, ssh usa una p minúscula para especificar el puerto (por ejemplo:-p 2222), mientras que scp usa una p mayúscula (por ejemplo:-P 2223). Con scp, la p minúscula se usa para conservar los modos y tiempos de los archivos originales. Ahí.

scp -r /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures/
contraseña de [email protected]:
wallhaven-156819.jpg 100% 166KB 500.8KB /s 00:00
wallhaven-448391.jpg 100% 1606KB 3.0MB/s 00:00
wallhaven-12679.jpg 100% 501KB 5.4MB/s 00:00
...

En el ejemplo anterior, copiamos recursivamente el contenido del directorio Fondos de pantalla a la carpeta Imágenes en nuestro servidor. Siempre puede invertir la dirección del flujo de datos (origen, destino).

Conectividad SSH, SCP desatendida

Como habrás notado anteriormente, en mi ejemplo, me pidieron una contraseña. Esto es bueno para el trabajo interactivo, pero puede ser engorroso si desea ejecutar copias de seguridad desatendidas, como trabajos programados para la noche. Para ello, deberá configurar el par de claves pública-privada SSH. El tutorial vinculado lo explica muy bien.

Línea de comando:rsync

Los casos de uso más obvios para la conectividad entre dos hosts son para fines de respaldo de datos. Por ejemplo, desea copiar el directorio de inicio de su estación de trabajo en un servidor de archivo. Cuando se trata de copias de seguridad, rsync es una excelente herramienta para el trabajo. Mejor aún, ya tiene una guía de su importante autor, que explica cómo usar rsync para configurar copias de seguridad de datos.

Necesitamos introducir el componente SSH en la ecuación. Rsync admite SSH sin problemas. En otras palabras, todo sigue igual, excepto cómo defines el destino. La sintaxis SSH/SCP al rescate:

rsync fuente nombreusuario@nombrehost:destino

Por ejemplo:

rsync -avs --delete -i -h /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures
contraseña de [email protected]:
enviando lista de archivos incrementales
*eliminando Screenshot_20200516-125442.png
*eliminando Screenshot_20200516-125302.png
*eliminando Screenshot_20200516-125252.png
...
*eliminando QEMU Virgil.txt
*borrando Fedora 32.txt
.d..tp..... ./

enviado 11.16M bytes recibido 7.94K bytes 2.03M bytes/seg
el tamaño total es 11.15M la velocidad es 1.00

Una vez más, necesitamos claves para una conectividad perfecta.

Conectividad GUI:administrador de archivos Dolphin

Como dije, hay muchas maneras diferentes de hacer esto. Haré una demostración con Dolphin, el administrador de archivos predeterminado en el escritorio de Plasma. Admite de forma nativa la conectividad SSH, por lo que básicamente puede hacer lo que hicimos anteriormente, excepto que ahora lo hace a través de la GUI en lugar de la línea de comandos. Dedicaré un artículo separado a los detalles más finos del uso de Dolphin y SSH, así que por ahora, aquí hay una versión abreviada.

Dolphin utiliza el protocolo FISH para establecer conexión con hosts remotos. En Dolphin, presione Ctrl + L o haga doble clic en la línea de ubicación para exponer la barra de direcciones y luego escriba:

pez://nombredeusuario@destino

Dolphin ahora le pedirá una contraseña, que puede guardar, y eso es todo. Está conectado al host remoto y puede realizar cualquier operación de archivo (dentro de los permisos SSH que tiene su usuario y el servidor permite).

Copia de seguridad de GUI:Grsync

Hemos hablado de esto antes. Grsync es una excelente utilidad de interfaz de rsync, mi favorita. Puede usarlo para definir una o más tareas de replicación de datos, incluidas varias opciones y exclusiones. En la línea de destino, debe ingresar la entrada de nombre de usuario@nombre de host:destino, tal como lo haría con rsync en una ventana de terminal.

Luego puede simular (ejecutar en seco) la operación o conectarse de verdad, con la ventaja adicional de que puede guardar las credenciales de conexión, para que pueda volver a ejecutar la tarea sin tener que autenticarse manualmente nuevamente. Perfecto para tareas de copia de seguridad de datos programadas.

Conclusión

Bueno, allá vas. Ahora tiene cuatro formas diferentes de conectar sus máquinas Linux, incluidos los métodos de línea de comandos y GUI, la autenticación basada en contraseña y sin contraseña, las copias de seguridad de datos y mucho más. Detrás de escena, todo es SSH, pero esa es realmente la belleza.

Espero que encuentres este artículo útil y práctico. Si quiere asegurarse de que sus cajas de Linux se comuniquen entre sí sin problemas, tiene las herramientas para ser su propio jefe. Para aquellos que confían en la línea de comandos, ssh, scp y rsync hacen el trabajo, pero si está más interesado en la acción simple de apuntar y hacer clic con el mouse, Dolphin y Grsync ofrecen la funcionalidad necesaria. Ahora, la lista no termina ahí. También puede usar FTP, SFTP, o un programa como Wormhole, y algunos otros administradores de archivos de Linux también ofrecen funcionalidad SSH y Rsync, pero ese es un tema para otro artículo realmente. Y eso sería todo por hoy.


Linux
  1. Establecer una conexión SSH entre Windows y Linux

  2. Cómo transferir archivos entre dos computadoras usando los comandos nc y pv

  3. Linux:¿cómo cambiar entre la sesión Tty y Xorg?

  4. Linux:¿compartir archivos entre el host de Linux y el invitado de Windows?

  5. ¿Cómo conectar y enviar datos a un puerto serie Bluetooth en Linux?

¿Cómo me conecto a Linux VPS a través de SSH desde Linux y Windows OS?

¿Cómo generar y usar la clave SSH en el sistema Linux?

Cómo agregar una clave SSH a VS Code y conectarse a un host

Cómo configurar Synergy en Linux para compartir teclado y mouse con múltiples sistemas

¿Cómo compartir archivos entre Ubuntu y Windows 10?

Cómo instalar, configurar y habilitar el servicio SSH en Linux