Me gustaría construir un túnel ssh desde mi dispositivo Android (llamémoslo A) en el puerto MMM a una máquina C en el puerto NNN. SIN EMBARGO, A y C no están conectados directamente. Solo están conectados a través de la máquina B (que también está ejecutando un servidor ssh). Por último, el puerto NNN solo está abierto localmente en la máquina C (que también está ejecutando un servidor ssh).
Entonces, con openssh en Unix, puedo usar la línea de comandos de ssh o el argumento ProxyCommand en .ssh/config para lograr esto:
Host C-tunnel
HostName C
Port 22
Use username
IdentityFile ~/.ssh/myidentityfileforC.pem
ProxyCommand ssh -e none -i /.ssh/myidentityfileforB.pem username@B nc -w 120 %h %p 2> /dev/null
Luego puedo configurar un túnel directo desde mi localhost a C:NNN (a través de la conexión anterior).
¿Hay alguna aplicación para Android que admita algo similar? Probé connectbot y ssh autotunnel. Este último estuvo cerca, ya que pude configurar un túnel de A a B y luego otro de A a C (a través de la conexión tunelizada A->B), pero al iniciar este último, ambos se cayeron. Configurar solo el primer túnel y luego usar connectbot me permite conectarme a C a través de ssh, pero no puedo configurar un reenvío de puerto directamente a C:NNN.
¿Alguna sugerencia? ¿Hay una adaptación directa de openssh que me haya perdido?
0 votos
Quizás esto esté totalmente equivocado, ¿pero podrías usar una máquina virtual en la máquina B y crear un túnel desde allí hasta A?
0 votos
Si estuviera en control de la máquina B, eso podría ser posible. Sin embargo, no puedo abrir puertos en la máquina B (o si lo hiciera, no serían accesibles). Gracias.
0 votos
Oh, entiendo. ¡Buenas suerte! Tal vez alguien más experto pasará por aquí.