2 votos

¿Cómo conectar dos teléfonos vía SSH con un servidor central SSH?

Tengo dos teléfonos A y B que utilizan datos móviles. Me gustaría conectarme desde el teléfono A al teléfono B El segundo tiene un servidor SSH que se ejecuta en el puerto 8022 . El servidor central de SSH se ejecuta en AWS y tiene una IP elástica. Teléfono A puede conectarse al servidor de AWS directamente en el puerto 22 , por lo que puede llamar por teléfono B .

Configuración del servidor de AWS:

GatewayPorts yes
TCP forward yes
Password Authentication Yes 

Además he reenviado el puerto 9099 en el servidor SSH de AWS al puerto local 8022 en el teléfono B :

~$ ssh -NR 9099:localhost:8022 user@Remoteip 

Corriendo netstat -tpln en el servidor AWS SSH puedo ver que 9099 está en modo de escucha.

Pero cuando hago ssh desde el teléfono A en el servidor de AWS en el puerto 9099 dice que se ha agotado el tiempo.

2voto

Jack Wade Puntos 231

Lo que he entendido de su pregunta:

Tienes dos teléfonos A y B que se conectan a Internet a través de los datos móviles. Teléfono B tiene un servidor SSH funcionando, escuchando en el puerto 8022 . Quieres iniciar sesión desde el teléfono A al teléfono B pero como este último no tiene una IP pública, quieres crear un túnel SSH inverso desde el teléfono B a otro servidor SSH que se ejecuta en la nube de AWS, escuchando en el puerto 22 . De esta manera se quiere que todo el tráfico recibido en el puerto 9099 en el servidor SSH de AWS debe ser reenviado al puerto 8022 en el teléfono B , por lo que ese teléfono A puede acceder a ella en Internet.

Si he entendido bien, lo más sencillo que tienes que hacer es

  • En AWS ejecuta un servidor SSH, que está escuchando en el puerto 22 . Dado que usted es capaz de acceder a este servidor desde ambos teléfonos A y B Creo que lo ha hecho correctamente. Digamos que su usuario de inicio de sesión aquí es server_user y la dirección IP es server_ip .

    Necesita dos palabras clave adicionales en /etc/ssh/sshd_config debe ser exactamente así (sin espacios adicionales):

    # /etc/ssh/sshd_config
    
    AllowTcpForwarding yes
    GatewayPorts yes

    Después de cambiar la configuración, no olvide reiniciar el servidor.

    • El primer parámetro asegura que el reenvío de puertos está permitido, es decir, que podrá crear un túnel.
    • El segundo parámetro asegura que el túnel inverso escuchará en todas las interfaces de red, y no sólo en la local ( loopback ) en el servidor de AWS.
  • En el teléfono B ejecutar un servidor SSH, que está escuchando en el puerto 8022 Digamos que su nombre de usuario es phone_user (El SSHD de Termux no requiere nombre de usuario).

    Pruebe si puede conectarse a este servidor. Por ejemplo, crear un hotspot en el teléfono A o B o conectar ambos a una tercera red WiFi. Ahora inicie la sesión desde el teléfono A al teléfono B . Si no funciona, solucione el problema, probablemente con la autenticación de la contraseña/clave.

  • En el teléfono B crear un túnel inverso, es decir, reenviar el puerto del servidor AWS SSH 9099 al teléfono B (local) del puerto 8022 :

    ~$ ssh -NR 9099:localhost:8022 server_user@server_ip

    Esto se puede hacer en Termux o utilizar alguna aplicación GUI como ConnectBot .

    Para probar si el túnel funciona correctamente, en el servidor de AWS:

    ~$ ssh phone_user@localhost -p 9099

    Debería acceder al teléfono B .

  • En el teléfono A , acceder al teléfono B a través del servidor SSH de AWS:

    ~$ ssh phone_user@server_ip -p 9099

Si no funciona, repite los pasos.

RELACIONADO:

0 votos

Me gustaría confirmar que si necesito hacer peticiones http en el teléfono B a través del teléfono A, ¿necesito tener un servidor o un cliente debería hacer el trabajo?

0 votos

@EhtizadZashkiyor lo siento no pude entender lo que quieres decir con http requests . ¿Quiere alojar un servidor web en el teléfono B ?

0 votos

Básicamente, me gustaría conectar el teléfono A al teléfono B y acceder a Internet a través del teléfono B. Entonces, ¿necesito tener un servidor en el teléfono B para hacer esto o un cliente en el teléfono B puede hacer lo mismo?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X