Je vais déployer un certain nombre de machines dans un avenir proche qui seront derrière des routeurs. Il ne sera pas possible de configurer un DNS dynamique sur chaque routeur et transfert de port, donc y a-t-il un moyen de configurer ces machines pour établir une connexion TCP avec mon ordinateur, puis demander à mon ordinateur d'établir une connexion SSH avec l'ordinateur distant via cette connexion?
C'EST À DIRE:
COMPUTER A OPENS TCP CONNECTION TO COMPUTER B
COMPUTER B OPENS SSH CONNECTION OVER THE EXISTING TCP CONNECTION TO COMPUTER A
COMPUTER B NOW HAS SSH CONNECTION TO COMPUTER A
Est-ce possible, et si oui, comment puis-je le faire?
Réponses:
Dans le jeu
/etc/ssh/sshd
de l' ordinateur B :Depuis l' ordinateur A :
Depuis l' ordinateur B :
Notez que 2222 est un numéro arbitraire de port élevé que j'ai choisi. Ce port sur l'ordinateur B sera ensuite retransmis via la connexion SSH initialisée sur l'ordinateur A vers le port 22. Si vous avez plusieurs machines, vous devez utiliser un port différent pour chaque machine.
Pour votre cas d'utilisation, vous voudrez probablement l'exécuter à partir d'un script afin de pouvoir en faire un démon et essayer régulièrement de vous reconnecter si le lien est supprimé. Vous voudrez probablement un compte spécial avec un shell uniquement
/bin/true
sur l' ordinateur B pour gérer les connexions entrantes. Vous pouvez ensuite configurer soit une seule touche, soit plusieurs touches pour chaque machine qui sont autorisées à "appeler à la maison".Sur l' ordinateur A vous pourriez trouver
-n
,-N
et-T
options utiles pour le déconnecter de l' entrée locale (il peut fonctionner en arrière - plan), essayez de ne pas exécuter une commande à distance, il suffit d' ouvrir le tunnel, et ne pas créer un téléscripteur.La plupart des méthodes normales de création d'un démon ne fonctionnent pas très bien avec la configuration d'un tunnel réseau comme celui-ci. Un problème de connectivité réseau l'obligerait à abattre le mur pour passer. Une simple boucle avec un sommeil à attendre devrait faire l'affaire. Dix minutes est un bon chiffre car cela n'inonde pas le réseau et les fichiers journaux avec des tentatives s'il y a un problème (comme l' ordinateur B hors ligne), mais cela vous permet de revenir assez rapidement si la connexion est interrompue.
Un script comme celui-ci peut être exécuté lancé au démarrage
/etc/rc.local
. Votre premier changement de se connecter à la machine commencera après environ dix minutes après l' ordinateur A bottes.la source
/etc/ssh/sshd_config