GNU/Linux >> Tutoriales Linux >  >> Linux

ssh a través de un enrutador sin reenvío de puertos

Lo que querría hacer es ssh DESDE su "servidor Linux" A algo en el exterior, como "mi_otro_servidor" o algo más a lo que ambos servidores puedan acceder.

Usaría el reenvío de puerto remoto ssh.
[[email protected]_server]$ ssh -R8022:localhost:22 my_other_server.com
Explicación:conéctese a my_other_server y abra el puerto 8022 allí, que me reenviará en el puerto 22.

Desde my_other_server.com, podrá conectarse mediante ssh a localhost en el puerto 8022 y reenviar su tráfico a linux_server piggybacking en linux_server -> my_other_server tunnel[[email protected]_server]$ ssh -p8022 localhost
Explicación:Conectarme a mí mismo en el puerto 8022 que se reenvía a linux_server

Si tiene problemas con el abandono inicial del túnel linux_server -> my_other_server, puede crear un script para mantenerlo abierto, ajustar la configuración de keepalive o usar autossh.


Esta respuesta se basa en la aceptada, pero agregando los detalles que me permitieron hacerlo. Me disculpo por la explicación pedestre, ya que esto no es en absoluto de mi experiencia.

Suponga que tiene dos computadoras, A y B . Quieres ssh de A a B , y no puede realizar ningún reenvío de puertos en los enrutadores conectados a ellos.

Como dice la respuesta aceptada, necesita un servidor S para hacer esto:en la computadora B , permitirá ssh conexiones provenientes de S; y desde la computadora A , accederá a ese túnel en S para llegar a B .

Pero, ¿cómo obtienes ese servidor? S ? Encontré serveo (enlace:https://serveo.net/). Es de uso muy sencillo. No tienes que instalar nada ni registrarte y es gratis. Según el sitio web, los pasos a seguir son:

  1. Piense en un alias para la computadora B . Por ejemplo, computer_B_alias .

  2. En la computadora B , ejecuta ssh -R computer_B_alias:22:localhost:22 serveo.net .

  3. Ahora, puede acceder a la computadora B desde la computadora A ejecutando lo siguiente en la computadora A :ssh -J serveo.net [email protected]_B_alias , donde tienes que sustituir user por el nombre del usuario en la computadora B .

P.D.:Por supuesto, conviertes el punto 2 en una tarea automática al iniciar tu computadora B .

P.S.S.:Antes de intentar esto, asegúrese de que ssh está instalado en ambos equipos. Para Ubuntu, sudo apt-get install ssh haría el trabajo.


Puede usar una especie de VPN para que esto funcione, pero requeriría que tenga un servidor al que pueda acceder el servidor inaccesible. Luego puede configurar OpenVPN en el servidor, su PC y el servidor con firewall, habilite client-to-client , y tu estas listo. http://openvpn.net/howto.html


Linux
  1. Cómo configurar túneles SSH

  2. Ssh:¿Scp a través de varios hosts?

  3. No se pueden ejecutar aplicaciones X a través de SSH en Linux

  4. Reenvío de puerto ssh motor de cómputo de google

  5. ¿Cómo habilitar el reenvío SSH X11 a través de un servidor adicional?

Cómo cambiar el puerto SSH en VPS

Cómo configurar el reenvío de puertos dinámicos SSH en Linux

Uso del reenvío de puertos SSH como herramienta de seguridad en Linux

Cómo cambiar el puerto SSH en CentOS

¿Cómo cambiar el puerto SSH en Centos 7.x?

¿Cómo cambiar el puerto SSH en Ubuntu?