2 votos

¿Es posible conectarse por ssh a un teléfono Android a través de 3G?

¿Es posible ejecutar un shell ssh en un teléfono Android cuando el teléfono está conectado de forma remota pero en 3G? Tengo mi teléfono de forma remota y enviando datos por 3G pero podría querer cambiar algo en él. He considerado

1) que el teléfono reciba texto de vuelta de una solicitud http y lo ejecute como un comando 2) ejecutar un shell ssh en el teléfono ¿algo más?

Gracias

0 votos

Mientras que técnicamente es posible, no se puede dar una respuesta general, ya que eso depende mucho de tu proveedor. Algunos proveedores permiten eso, otros tienen los puertos (entrantes) bloqueados. Si están bloqueados, solo es posible con el dispositivo Android estableciendo la conexión para empezar, no al revés.

0 votos

4voto

Vlatko Šurlan Puntos 39

Una forma de hacer que su dispositivo Android sea accesible a través del acceso SSH WAN (como conectarse desde cualquier lugar) sería crear un túnel SSH inverso desde su dispositivo Android a algún dispositivo que siempre esté en línea. Puede ser su computadora de escritorio detrás de un enrutador NAT (el caso más común). Luego, reenvíe ese mismo puerto desde el enrutador a su computadora de escritorio. Esto es lo que obtiene:

Android ==TÚNELSSHINVERSO==> Escritorio <==REENVÍODEPUERTO== Enrutador con IP pública

Tanto el túnel SSH inverso como el reenvío de puertos desde el enrutador se pueden hacer en cualquier puerto de alto número, pero para evitar crear un desastre en la numeración de puertos, simplemente elija un número alto, superior a 1024, y quédese con ese. Entonces obtiene, por ejemplo:

Android:3331 ==TÚNELSSHINVERSO==> Escritorio:3331 <==REENVÍODEPUERTO== Enrutador:3331 con IP pública Entonces, ¿qué sucede cuando hace SSH en la IP de su enrutador en el puerto 3331? Es que su enrutador reenvía la conexión al Escritorio en el puerto 3331 y el Escritorio (porque la conexión desde el dispositivo Android al escritorio, que parece que está en la dirección incorrecta, de hecho está EN REVERSA, por lo que es como si el Escritorio estuviera conectado al dispositivo Android) reenviará la conexión al dispositivo Android en el puerto 3331. Por lo tanto, su conexión SSH irá de CualquierCosa => Enrutador => Escritorio => Android.

Esto funcionará porque su ISP no bloqueará que su Android haga SSH en su escritorio mientras bloquearía que usted haga SSH en su Android desde su escritorio u cualquier otro lugar en el puerto predeterminado. Por lo tanto, usamos ese hecho, nos conectamos "de la manera incorrecta" y luego revertimos la conexión y obtenemos lo mismo que si nos hubiéramos conectado "de la manera correcta".

No olvide hacer que la aplicación SSH del dispositivo Android escuche en el puerto 3331 o hacer que el túnel inverso abra el puerto 22 en el lado del dispositivo Android.

0 votos

Un ejemplo fantástico del mundo real de túneles ssh. Esta respuesta debe formar parte de cualquier lugar que hable sobre reenvío de puertos ssh y/o túneles.

1voto

warsong Puntos 620

Como otros han dicho, técnicamente sí es posible pero existe la posibilidad de que tu operador no permita conexiones al puerto relevante.

Prueba SSHDroid, eso debería hacer lo que estás buscando. Si no funciona, entonces sabrás que es por culpa de tu operador. https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid

0voto

No creo que sería muy posible para muchos operadores con base en el hecho de que es probable que los puertos estén cerrados. Si fuera a través de WiFi/local, sí. Podrías usar fácilmente Tasker para leer mensajes de texto y realizar acciones aunque lo pueda imaginar.

0voto

user3387542 Puntos 196

Si preparas tu teléfono correctamente, sí, es posible. Lo he hecho muchas veces. Escribí una aplicación que hace un reenvío de puertos a mi servidor. (puerto adb por wifi). Todo lo que necesitas hacer es iniciar sesión en el servidor y verás el dispositivo conectado como si estuviera enchufado por usb. Incluso hice más reenvío de puertos a mi máquina local. Funciona bien, pero si el teléfono está en movimiento, puedes tener varias pérdidas de conexión.

Funciona porque el teléfono se conecta al servidor y no al revés (bloqueado por el firewall en la mayoría de los países).

¡Buena suerte!

0voto

Talib Hussain Puntos 1

Si tienes un VPS en la nube es posible. Obtén un cloud barato en arubacloud.com.

En primer lugar, inicia sesión en tu servidor remoto y abre /etc/ssh/sshd_config. Si aún no existe, agrega la línea:

GatewayPorts clientspecified

Luego reinicia el demonio SSH:

sudo /etc/init.d/ssh restart
# or
sudo service sshd restart

De vuelta en tu Android, inicia tu servidor de desarrollo o cualquier cosa a la que quieras acceder desde cualquier lugar y luego en la terminal de JuiceSSH ejecuta lo siguiente:

 ssh -N -R :3000:localhost:8182 root@vpsipadress

Al solicitar, escribe la contraseña del usuario VPS. Eso es todo. Donde el puerto local de Android es 8182. Ahora cualquiera puede acceder a vpsipadress:3000.

Puedes apt-get install sshpass y usar contraseñas de servidores en este comando:

sshpass -p Password ssh -N -R :3000:localhost:8182 root@vpsipadress

también.

autosh, cron ---- crontab -e y auto.sh, demasiadas opciones.

Actualización.......

Lo mejor en Android es instalar Gnuroot Debian. El mejor Linux para Android no rooteado. Instala ssh y sshpass. Y en /etc/rc.local agrega este comando:

while true; do sshpass -p YOURPASSWORD ssh -N -f -R :3000:localhost:8182 USER@YOURHOST-OR-IP; sleep 3; done

rc.local se asegurará de ejecutar este comando al inicio. Y al desconectar o cualquier cambio en la red/internet, el script del bucle intentará reconectarse cada 3 segundos.

También puedes hacer un script auto.sh:

#!/bin/sh

while true; do sshpass -p YOURPASSWORD ssh -N -f -R :3000:localhost:8182 USER@YOURHOST-OR-IP; sleep 3; done

chmod +x lo hará ejecutable.

sh auto.sh

Si rc.local no ayuda, instala cron:

apt-get install cron
crontab -e

agrega el comando: @reboot sh auto.sh. shif+zz para guardar. Este trabajo cron lo hará al inicio.

0 votos

Lo mejor que puedes hacer en Android es

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