2 votes

Comment connecter deux téléphones via SSH avec un serveur SSH central ?

J'ai deux téléphones A y B qui utilisent les données mobiles. Je voudrais me connecter à partir du téléphone A au téléphone B le dernier a un serveur SSH fonctionnant sur le port 8022 . Le serveur central SSH est exécuté sur AWS et possède une IP Elastic. Téléphone A peut se connecter au serveur AWS directement au port 22 le téléphone aussi B .

Configuration du serveur AWS :

GatewayPorts yes
TCP forward yes
Password Authentication Yes 

De plus, j'ai transféré le port 9099 sur le serveur SSH AWS au port local 8022 au téléphone B :

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

En courant netstat -tpln sur le serveur SSH d'AWS, je peux voir que 9099 est en mode d'écoute.

Mais quand je me connecte depuis le téléphone A dans le serveur AWS au port 9099 ça dit que ça a expiré.

2voto

Irfan Latif Points 16863

Ce que j'ai compris de votre question :

Vous avez deux téléphones A y B qui sont connectés à l'internet par le biais des données mobiles. Téléphone B a un serveur SSH en marche, écoutant sur le port 8022 . Vous voulez vous connecter à partir du téléphone A au téléphone B mais comme ce dernier n'a pas d'IP publique, vous voulez créer un tunnel SSH inverse à partir du téléphone. B vers un autre serveur SSH fonctionnant sur le cloud AWS, écoutant sur le port 22 . De cette façon, vous souhaitez que tout le trafic reçu sur le port 9099 sur le serveur SSH d'AWS doit être redirigé vers le port 8022 au téléphone B de sorte que le téléphone A peut y accéder sur internet.

Si j'ai bien compris, la chose la plus simple que vous devez faire est :

  • Sur AWS, exécutez un serveur SSH, qui écoute sur le port 22 . Puisque vous êtes en mesure de vous connecter à ce serveur à partir des deux téléphones. A y B Je pense que vous l'avez fait correctement. Disons que votre utilisateur de connexion ici est server_user et l'adresse IP est server_ip .

    Vous avez besoin de deux mots-clés supplémentaires dans /etc/ssh/sshd_config doit ressembler exactement à ceci (sans espaces supplémentaires) :

    # /etc/ssh/sshd_config
    
    AllowTcpForwarding yes
    GatewayPorts yes

    Après avoir modifié la configuration, n'oubliez pas de redémarrer le serveur.

    • Le premier paramètre garantit que le transfert de port est autorisé, c'est-à-dire que vous serez en mesure de créer un tunnel.
    • Le deuxième paramètre assure que le tunnel inverse écoutera sur toutes les interfaces réseau, et pas seulement sur l'interface locale ( loopback ) sur le serveur AWS.
  • Au téléphone B exécuter un serveur SSH, qui écoute sur le port 8022 disons que votre nom d'utilisateur de connexion est phone_user (Le SSHD de Termux ne nécessite pas de nom d'utilisateur).

    Testez si vous pouvez vous connecter à ce serveur. Par exemple, créez un hotspot sur votre téléphone A o B ou connectez les deux à un troisième réseau WiFi. Maintenant, connectez-vous à partir du téléphone A au téléphone B . Si cela ne fonctionne pas, recherchez le problème, très probablement l'authentification par mot de passe/clé.

  • Au téléphone B créer un tunnel inverse, c'est-à-dire faire suivre le port du serveur SSH d'AWS 9099 au téléphone B du port (local) 8022 :

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

    Cela peut être fait sur Termux ou utiliser une application GUI comme ConnectBot .

    Pour tester si le tunnel fonctionne correctement, sur le serveur AWS :

    ~$ ssh phone_user@localhost -p 9099

    Il devrait vous connecter au téléphone B .

  • Au téléphone A Connexion au téléphone B via le serveur SSH d'AWS :

    ~$ ssh phone_user@server_ip -p 9099

Si cela ne fonctionne pas, répétez les étapes.

RELATION :

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