initier la connexion ssh du serveur au client

10

Nous pouvons facilement nous connecter via sshla machine distante qui a une adresse IP publique.

Mais maintenant, j'ai une machine distante sans IP publique, et je dois me connecter à partir de ma machine qui a une IP publique. Ainsi, la machine distante devrait initier cette connexion (ajouter un client).

J'en ai besoin parce qu'il y a mon grand-père sur un ordinateur sans IP publique, et il a parfois besoin d'aide avec son système.

Dans une situation similaire sous Windows, j'ai utilisé une connexion VNC (par TightVNC), le serveur TightVNC a une option "Ajouter un client": l'utilisateur vient de saisir l'IP du client (c'est-à-dire mon IP publique), mon client est déjà en "mode d'écoute", et lorsque "serveur" ajoute un client, la connexion est initialisée.

Alors, est-il possible d'effectuer la même astuce avec une connexion SSH?

Dmitry Frank
la source

Réponses:

12

Par définition, le client est celui qui initie la connexion.

Pour votre problème, je pense qu'une solution simple serait de construire un tunnel inverse.

Sur l'ordinateur sans IP publique:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

Cela se connecte au serveur par SSH et crée un tunnel entre le serveur avec IP publique sur le port 2222 et l'ordinateur sans IP publique sur le port 22 (SSH).

Et puis sur le serveur:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

La connexion est redirigée du port 2222 du serveur vers le port 22 de l'ordinateur par le premier tunnel. Vous voudrez peut-être utiliser un outil comme autosshpour rendre le tunnel plus résilient (c'est-à-dire le redémarrer automatiquement lorsqu'il s'arrête).

lgeorget
la source
Merci, très utile et concis. Voir les réponses à cette question pour plus de détails et d'autres options utiles.
AstroFloyd