GNU/Linux >> Tutoriels Linux >  >> Linux

Transférer SSH via un tunnel SSH

Solution 1 :

Votre problème est de lier un écouteur à localhost:22 ; il y a déjà un sshd qui écoute dessus. Le tunneling d'une connexion ssh via une connexion ssh est tout à fait légal, et je le fais tout le temps, mais vous devez choisir les ports inutilisés pour vos écouteurs de transfert.

Essayez

me% ssh [email protected] -L 2201:192.168.25.100:22

alors

me% ssh localhost -p 2201

Vous devriez vous retrouver sur le serveur B (à moins que quelque chose ne soit déjà lié à moi :2201, auquel cas, choisissez un autre port).

Solution 2 :

Vous n'avez pas besoin d'utiliser la redirection de port ssh pour vous connecter en ssh à un ordinateur interne via un proxy. Vous pouvez utiliser la fonctionnalité ssh pour exécuter une commande sur le premier serveur auquel vous vous connectez afin de vous connecter en ssh à un 3ème ordinateur.

ssh -t [email protected] ssh [email protected]

Le -t force ssh à allouer un pseudo-tty afin que vous puissiez exécuter une commande interactive.

Cela peut également fonctionner avec les clés ssh. Si vous avez votre clé privée et publique sur la machine A et votre clé publique dans les fichiers de clés autorisées sur les machines B et C, alors vous pouvez utiliser le -A option pour transférer la connexion de l'agent d'authentification.

Solution 3 :

Depuis OpenSSH 7.3 (fin 2016), le moyen le plus simple est le paramètre ProxyJump. Dans votre ~/.ssh/config :

Host B
  ProxyJump A

Ou sur la ligne de commande, , -J B .

Solution 4 :

J'ai utilisé une autre solution. J'ai utilisé un ProxyCommand option (ici en ~/.ssh/config ):

Host myinsidehost1 myinsidehost2 myinsidehost3
ProxyCommand ssh externalhost ssh %h sshd -i

Cela ne configure aucun tunnel de port à port, mais crée un tunnel ssh en utilisant la norme stdin/out. Cette méthode présente l'inconvénient qu'il y a en fait trois connexions ssh à authentifier. Mais pour vous connecter à l'hôte interne, il vous suffit de taper :

ssh myinsidehost2

... vous n'avez donc pas à vous soucier de choisir une adresse IP pour ce tunnel.

Solution 5 :

selon la page de manuel ssh, ProxyCommand est la bonne méthode

la syntaxe étant :

ProxyCommand ssh -W %h:%p [email protected] 2> /dev/null

Linux
  1. Ssh – Trafic de tunnel via une autre machine via Ssh ?

  2. Linux – Transfert X11 via Ssh ?

  3. Ssh - Scp via plusieurs hôtes ?

  4. Comment puis-je tunneliser tout mon trafic réseau via SSH ?

  5. ssh via un routeur sans redirection de port

Ssh – Comment fonctionne le tunneling Ssh inversé ?

Comment déterminer si je suis connecté via SSH ?

comment tunneliser Windows Remote Desktop via ssh à l'aide d'une machine Linux?

SSH de A à B vers C, en utilisant la clé privée sur B

ajouter un mot de passe à .ssh/config

Connexion SSH via un tunnel SSH inversé (distant)