Ma situation :
Moi (localhost) -> Serveur A (ip: 100.100.100.100) => (serveur B (ip: 192.168.25.100), serveur ....)
je suis capable de SSH dans le serveur car il a une vraie ip si je veux ensuite me connecter au serveur b, je serais le serveur b avec son ip (192.168.25.100)
exemple:
depuis mon pc:
ssh [email protected]
puis en 100.100.100.100,
ssh [email protected]
cela m'amènerait au serveur B avec ssh
que faire si je veux me connecter directement au serveur b? Comment puis je faire ça?
exemple:
de mon oc:
[email protected]
j'ai essayé ce qui suit:
ssh -L 22:localhost:22 [email protected]
sans succès
Votre problème est de lier un auditeur à localhost: 22; il y a déjà une écoute sshd à ce sujet. Le tunneling d'une connexion ssh via une connexion ssh est complètement légal, et je le fais tout le temps, mais vous devez choisir des ports inutilisés pour vos auditeurs de transfert.
Essayer
me% ssh [email protected] -L 2201:192.168.25.100:22
puis
me% ssh localhost -p 2201
Vous devriez vous retrouver sur le serveur B (sauf si quelque chose m'est déjà lié: 2201, auquel cas, choisissez un autre port).
Vous n'avez pas besoin d'utiliser la redirection de port ssh vers ssh dans un ordinateur interne via un proxy. Vous pouvez utiliser la fonction ssh d'exécuter une commande sur le premier serveur auquel vous vous connectez afin de ssh dans un 3ème ordinateur.
ssh -t [email protected] ssh [email protected]
Le -t
option force ssh à allouer un pseudo-tty pour 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és sur les machines B et C, vous pouvez utiliser le -A
option pour transférer la connexion de l'agent d'authentification.
J'ai utilisé une solution différente. J'ai utilisé une option ProxyCommand
(ici dans ~/.ssh/config
):
Host myinsidehost1 myinsidehost2 myinsidehost3
ProxyCommand ssh externalhost ssh %h sshd -i
Cela ne configure aucun tunnel de port à port, mais tunnelise ssh en utilisant stdin/out standard. Cette méthode présente l'inconvénient qu'il existe en réalité 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.
Depuis OpenSSH 7.3 (fin 2016), le moyen le plus simple est le paramètre ProxyJump . Dans ton ~/.ssh/config
:
Host B
ProxyJump A
Ou sur la ligne de commande, -J B
.
selon la page de manuel ssh, ProxyCommand est la bonne méthode
la syntaxe étant:
ProxyCommand ssh -W %h:%p user@jumphost 2> /dev/null
Bien que ProxyJump
ait déjà été mentionné, je trouve qu'il est beaucoup plus facile d'utiliser "jump Host" (-J
) argument de ligne de commande:
Une fois que vous savez ce qu'il fait, la syntaxe est assez simple: ssh -J [email protected] [email protected]