2 votes

est-il possible de se connecter à un téléphone Android via la 3G ?

Est-il possible d'exécuter un shell ssh sur un téléphone Android lorsque le téléphone est connecté à distance mais en 3G ? Mon téléphone est connecté à distance et envoie des données via la 3G, mais je pourrais vouloir changer quelque chose dessus. J'ai envisagé

1) le téléphone reçoit le texte en retour d'une requête http et l'exécute comme une connexion. 2) exécuter un shell ssh sur le téléphone Autre chose ?

Gracias

0 votes

Bien que cela soit techniquement possible, il n'est pas possible de donner une réponse générale, car cela dépend beaucoup de votre fournisseur. Certains fournisseurs l'autorisent, d'autres bloquent les ports (entrants). Si le port est bloqué, cela n'est possible que si c'est l'appareil Android qui établit la connexion au départ, et non l'inverse.

0 votes

4voto

Vlatko Šurlan Points 139

Une façon de rendre votre machine Android accessible via un accès SSH WAN (c'est-à-dire en se connectant de n'importe où) serait de créer un tunnel SSH inverse depuis votre machine Android vers une machine qui est toujours en ligne. Il peut s'agir de votre ordinateur de bureau derrière un routeur NAT (cas le plus courant). Puis vous transférez ce même port du routeur vers votre ordinateur de bureau. Voici ce que vous obtenez :

Android ==REVERSESSHTUNNEL==> Desktop <==PORTFORWARD== Routeur avec IP publique

Le tunnel SSH inverse et le transfert de port depuis le routeur peuvent être effectués sur n'importe quel port à numérotation élevée, mais pour éviter de créer un désordre dans la numérotation des ports, il suffit de choisir un numéro élevé, supérieur à 1024, et de s'y tenir. Ainsi, vous obtenez par exemple

Android:3331 ==REVERSESSHTUNNEL==> Desktop:3331 <==PORTFORWARD== Routeur:3331 avec IP publique Donc ce qui se passe lorsque vous vous connectez en SSH à l'IP de votre routeur au port 3331, c'est que votre routeur transmet la connexion au Desktop au port 3331 et le Desktop (parce que la connexion de l'appareil Android au Desktop, qui semble être dans la mauvaise direction, est en fait inversée, donc c'est comme si le Desktop était en fait connecté à l'appareil Android) transmet la connexion à l'appareil Android au port 3331. Ainsi, votre connexion SSH ira de Whatever => Router => Desktop => Android.

Cela fonctionnera parce que votre FAI ne bloquera pas votre Android pour qu'il se connecte à votre ordinateur, alors qu'il vous bloquera pour qu'il se connecte à votre Android depuis votre ordinateur ou n'importe où ailleurs sur le port par défaut. Nous utilisons donc ce fait, nous connectons "de la mauvaise façon" puis inversons la connexion et obtenons la même chose que si nous nous étions connectés de la "bonne façon".

N'oubliez pas de faire en sorte que l'application SSH de la machine Android écoute le port 3331 ou que le tunnel inverse ouvre le port 22 du côté de la machine Android.

0 votes

Un fantastique exemple concret de ssh tunneling . Cette réponse doit figurer dans tout document traitant de la redirection de port ssh et/ou du tunneling.

1voto

warsong Points 930

Comme d'autres l'ont dit, techniquement oui, c'est possible, mais il est possible que votre opérateur n'autorise pas les connexions au port concerné.

Essayez SSHDroid, cela devrait faire ce que vous demandez. Si ça ne marche pas, vous savez que c'est à cause de votre opérateur. https://play.google.com/store/apps/details?id=berserker.Android.apps.sshdroid

0voto

Je ne pense pas que ce soit possible pour beaucoup de transporteurs, car les ports seraient probablement fermés. Si c'était en WiFi/local, oui. Vous pourriez facilement utiliser Tasker pour lire des textes et effectuer des actions, j'imagine.

0voto

user3387542 Points 226

Si vous préparez votre téléphone comme il faut, oui, c'est possible. Je l'ai fait plusieurs fois. J'ai écrit une application qui fait une redirection de port vers mon serveur. (adb sur le port wifi). Tout ce que vous avez à faire est de vous connecter au serveur et vous verrez l'appareil connecté comme s'il était branché en utilisant usb. J'ai même fait une redirection de port supplémentaire vers ma machine locale. Cela fonctionne bien, mais si le téléphone est sur le trajet, vous pouvez avoir plusieurs pertes de connexion.

Cela fonctionne parce que le téléphone se connecte au serveur et non l'inverse (bloqué par le pare-feu dans la plupart des pays).

Bonne chance !

0voto

Talib Hussain Points 1

Si vous disposez d'un cloud VPS, c'est possible. Obtenez un nuage bon marché sur arubacloud.com.

Tout d'abord, connectez-vous à votre serveur distant et ouvrez /etc/ssh/sshd_config . S'il n'existe pas déjà, ajoutez la ligne :

GatewayPorts clientspecified

Puis redémarrez le démon SSH :

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

De retour sur votre Android, démarrez votre serveur de développement ou toute autre chose à laquelle vous voulez accéder de n'importe où, puis dans le terminal JuiceSSH exécutez ce qui suit :

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

Sur demande, tapez le mot de passe de l'utilisateur du VPS. C'est tout. Où le port local d'Android est 8182 . Tout le monde peut maintenant y accéder vpsipadress:3000 .

Vous pouvez apt-get install sshpass et utiliser les mots de passe des serveurs dans cette commande :

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

également.

autosh , cron ---- crontab -e y auto.sh trop d'options.

Mise à jour.......

La meilleure chose sur Android est d'installer Gnuroot Debian. Le meilleur Linux pour les Android non enracinés. Installer ssh y sshpass . Et en /etc/rc.local ajouter cette commande :

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

rc.local fera en sorte d'exécuter cette commande au démarrage. Et en cas de déconnexion ou de tout autre changement dans l'Internet/réseau, le script de boucle essaiera de le reconnecter toutes les 3 secondes.

Vous pouvez également faire auto.sh script :

#!/bin/sh

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

chmod +x le rendra exécutable.

sh auto.sh

Si rc.local n'aidera pas à installer cron :

apt-get install cron
crontab -e

ajouter une commande : @reboot sh auto.sh . shif+zz à sauver. Cette tâche cron le fera au démarrage.

0 votes

La meilleure chose à faire sur Android est

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X