Cómo conectarse de forma remota a un terminal Linux en otra PC a través de la misma red WiFi

Esta respuesta supone que la máquina “terminal de Linux” está ejecutando Linux (o un BSD) y no Windows. (No tengo idea de que el soporte de Linux en Windows es lo suficientemente bueno para sshd / telnetd / lo que sea, o lo que eso representaría en términos de accesos al sistema subyacente).

Hay 3 partes principales de esto:

  1. Instalación de sshd (o telnetd o rshd) en la máquina de destino (Terminal de Linux).
  2. Instalar un cliente ssh en la PC del operador.
  3. Determinar las direcciones IP de la máquina de destino (Terminal de Linux).

Por ahora, me olvidaré de “telnetd” o “rshd”: son viejos, no están encriptados y están en desuso, aunque si fuera lo suficientemente hábil, podría hacerlo. Pero también le faltaría funcionalidad (como soporte para aplicaciones GUI / ventanas).

Para (1): instale sshd.

La mejor manera sería como administrador de la máquina de destino “Terminal Linux” para instalar el “servidor ssh” y habilitarlo. Cómo hacer esto y cómo se nombra depende de su distribución. Podría llamarse “sshd” o “servidor ssh” o “servidor openssh”. Para las distribuciones de Linux basadas en Debian, el comando “apt-get” estará involucrado y se encargará de la mayor parte. Para las distribuciones basadas en RedHat, “yum install” estará involucrado, y es probable que tenga que iniciar el servidor manualmente (y tal vez incluso configurarlo para que se inicie automáticamente al reiniciar manualmente). Para Linux From Scratch: está viendo madriguera de conejo que Alice bajó. Para FreeBSD, sshd es parte del sistema base, pero es probable que tenga que jugar con /etc/rc.conf para que aparezca automáticamente después del reinicio.

Como OpenSSH vino de OpenBSD, estoy seguro de que hay instrucciones sobre cómo habilitarlo allí, y también estoy seguro de que está deshabilitado de forma predeterminada. Tendrás que buscar en Google sobre NetBSD.

Si NO tiene acceso de administrador en la máquina de destino pero SÍ tiene un inicio de sesión, puede descargar y crear OpenSSH desde la web. Es posible que pueda ejecutar su compilación en un puerto TCP no predeterminado, pero solo tendrá sus privilegios y derechos.

Para (2): instale un cliente ssh

Si la PC de su operador es una caja de Windows, solo debe instalar PuTTY.

Mac viene con “ssh” incorporado.

Para Linux, et. al., vea mis comentarios, excepto que buscará instalar “ssh” en lugar de “sshd” o “ssh-client” en lugar de “ssh-server”.

Para (3): determine la dirección IP del objetivo

Eso podría ser un desafío porque el enrutador WiFi local podría cambiar la dirección IP local del “objetivo” de vez en cuando (especialmente después de un reinicio).

Mientras esté en la máquina de destino, use el comando “ifconfig” para enumerar todas las interfaces activas y GRABAR la dirección “HWaddr” (o MAC) de todas ellas. Registre la dirección IP y la máscara de red también.

Con suerte, su PC operadora permitirá “hacer ping” (eco ICMP) a la dirección de transmisión de su red local. (Fallar eso significa hacer ping a cada una de las direcciones). Hacer esto debería permitirle construir una lista de direcciones MAC a través del proceso detrás de escena de hacer un ARP para determinar cuál es la dirección MAC de una dirección IP local específica.

Examine la lista de direcciones MAC y luego use “ssh” para conectarse a la dirección IP correspondiente para la dirección MAC que se encuentra arriba.

‘Un terminal de Linux’ puede significar algunas cosas diferentes.

  • Podría significar que desea ejecutar un programa de shell de Linux , como bash, donde el terminal local es otra estación de trabajo de la computadora, y se utiliza como consola del proceso de shell en el host remoto de Linux.
  • Podría significar que desea conectarse a alguna sesión de terminal específica existente en una estación de trabajo remota de Linux.
  • Podría significar que desea ejecutar una aplicación de terminal de Linux como xterm o konsole, y tener la GUI del terminal presentada en la estación de trabajo local.

Todos estos tienen el componente común de hacer una conexión de red desde la estación de trabajo local al host remoto de Linux. Después de eso, hay requisitos adicionales, dependiendo de lo que realmente desee.

Para realizar la conexión de red, lo más probable es que desee que la estación de trabajo local use un cliente SSH y que el host remoto de Linux proporcione un servidor SSH, cada uno configurado adecuadamente para los respectivos hosts y redes. Esto le permite crear una conexión TCP que incluye un inicio de sesión desde la estación de trabajo local e iniciar alguna aplicación en el host remoto de Linux. La forma de configurarlos es específica de la arquitectura del host y, dado que no se especifica la naturaleza de la estación de trabajo local, no intentaré describir los métodos que podrían aplicarse.

Lo que difiere de ese punto depende de lo que realmente estés tratando de lograr. Si desea simplemente transferir el texto del inicio de sesión y la sesión de shell remota a través de la red, necesitará tener algún terminal existente en la estación de trabajo local, y probablemente un método para iniciar el cliente SSH en la estación de trabajo local. En un shell de Linux local, esto sería tan simple como un comando como ‘ ssh the.remote.linuxhost ‘. Esto intentaría establecer una conexión y realizar un inicio de sesión con el nombre de usuario que se usa en la estación de trabajo local. Hay varias otras opciones posibles, como proporcionar un nombre de usuario alternativo para el inicio de sesión remoto.

Si hay una sesión de terminal existente en el host remoto de Linux, puede conectarse a ella al menos de dos maneras comunes. Si la sesión se está ejecutando dentro de una sesión de pantalla GNU, puede adjuntarla remotamente a esa sesión como parte del proceso de conexión e inicio de sesión (suponiendo que conozca el nombre de la sesión y tenga los privilegios suficientes en el host remoto). Alternativamente (y este es el único caso que no utiliza una conexión cliente / servidor SSH), podría usar un estilo de conexión de Escritorio remoto para ver el escritorio de host remoto de Linux, que incluiría todas y cada una de las sesiones de estilo de terminal que podrían ejecutarse , o inicie uno nuevo si desea hacerlo. Una vez más, hay componentes compatibles de cliente y servidor para usar en cada extremo de la conexión, y puede investigar qué debe hacerse para instalarlos y configurarlos de acuerdo con las arquitecturas de host específicas.

Finalmente, puede querer decir que la aplicación de terminal debe ejecutarse en el host remoto, pero que su GUI se represente en la estación de trabajo local. Por lo general, esto se haría utilizando un servidor X local, y la aplicación remota de cliente X ( xterm , o konsole son los ejemplos) representa su salida en el servidor X local. La aplicación de terminal luego se iniciará automáticamente en su ventana como shell, generalmente bash en instalaciones modernas de Linux. Esta configuración requeriría la existencia de un servidor X en la estación de trabajo local, y esto queda como una cuestión que el lector debe investigar e instalar. Con este método, puede ejecutar cualquier cantidad de aplicaciones GUI, como navegadores web, IDEs de programación, herramientas multimedia, etc. El escenario más común sería que el tráfico X entre el servidor X local y las aplicaciones de cliente X remoto se canalizaría a través de la sesión SSH como se describió anteriormente.

Puede haber otras opciones generales, pero estoy seguro de que cubren con mucho la mayor cantidad posible de interpretaciones de la pregunta.

Puede configurar un servidor SSH con “apt install openssh-server openssh-client”

Deberá configurar SSH en la computadora de destino y tener un cliente SSH en la otra.