Para ayudar a otros rápidamente, SSH es muy útil, especialmente combinado con GNU Screen. Es común que los usuarios estén detrás de un enrutador NAT. Incluso si el usuario puede configurar el enrutador, lleva algún tiempo recordar la contraseña, encontrar las opciones correctas, etc.
Entonces, ¿cuál es la forma más fácil de ayudar a otros a través de SSH si están detrás de un enrutador NAT?
Actualmente le digo a las personas que abran una terminal ejecuten el siguiente comando y me pasen su IP desde un sitio como http://ip.appspot.com/ :
sudo apt-get install openssh-server ssh-import-id && ssh-import-id lekensteyn
Obviamente, esto no funcionará si están detrás de un enrutador NAT o si tienen un firewall personal configurado. Entonces, ¿hay algo como:
sshd --accept-help-from lekensteyn
No estoy buscando alternativas como Teamviewer, solo un shell como SSH. También debe ser de código abierto.
fuente
Según sus necesidades específicas, probablemente:
También olvidé que puedes probar el túnel ssh inverso , aunque esta solución técnicamente necesita una computadora más, la del medio, para funcionar.
Más información se puede encontrar aquí
fuente
Por lo general, configuro un túnel IPv6 (de sixxs.net o he.net) si aún no tienen IPv6 y de esa manera la computadora tiene una dirección estática y no tengo que meterme con NAT. También me gusta configurar la autenticación basada en claves (entonces no tienen que decirle su contraseña).
Sixxs tiene su propio cliente que usted usa. Funciona detrás de casi cualquier NAT y se actualiza automáticamente cuando cambia la dirección IPv4. Tienen instrucciones sobre cómo configurarlo y está empaquetado para Ubuntu.
Hurricane Electric utiliza un túnel donde los paquetes de IPv6 se envían como la carga útil de un paquete de IPv4. A diferencia de Sixxs, no se utiliza TCP / UDP. Esto significa que el NAT que está detrás debe admitir el PROTOCOLO de reenvío 41 (no el puerto) y solo una computadora detrás del NAT puede usarlo. El software para usar un túnel como este está integrado en Ubuntu.
Para HE, uso algo como esto en
/etc/network/interfaces
:La otra cosa que debe hacer es actualizar su punto final del túnel. Como no sabe cuándo cambia la IP externa, tendrá que intentar actualizar el punto final cada pocos minutos. Podría usar algo como esto y ejecutarlo desde cron:
fuente
A lo largo de los años, desarrollé una GUI para hacer exactamente lo que el OP pide ... excepto que requiere un acceso ssh a un tercer servidor con IP pública, como lo sugiere Pavlos. Puede encontrar aquí los paquetes de Debian y las instrucciones:
http://pietrobattiston.it/reachme
Tenga en cuenta que (todavía) no puede encargarse de la configuración inicial, es decir, debe configurar usted mismo las claves rsa para una conexión sin contraseña. Una vez configurado, "reachthem" le permite ver si "reachme" está conectado, y abrir un shell ssh / navegar por el sistema de archivos / ver la pantalla (experimental).
Claramente, no necesita una tercera computadora si su computadora tiene una IP pública, como en la respuesta de ændrük. Y claramente, el beneficio de la GUI es que el usuario remoto no tiene que ingresar ningún comando en una terminal ... pero parte de este beneficio se pierde si el usuario remoto tiene que instalar reachme. Por lo tanto, siempre instalo y configuro reachme para todos los que instalo Ubuntu.
fuente