Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Rebonds SSH
Permet de se connecter directement à un serveur B (distant) en passant par le serveur A (distant) depuis son PC.
Les directives OpenSSH ProxyJump et ProxyCommand indiquent au client SSH comment se connecter à un serveur distant via un serveur intermédiaire - souvent appelé hôte de saut, serveur de saut ou serveur bastion.
ProxyJump est disponible depuis la version 7.5 de OpenSSH. Suppose la prise en charge de la redirections par les hôtes intermédiaires. C'est une façon simplifiée d'utilisation de ProxyCommand.
ProxyCommand offre une plus grande flexibilité des connexions de route.
ProxyCommand
ProxyCommand fonctionne en transférant l'entrée standard (stdin) et la sortie standard (stdout) de la machine distante via les hôtes proxy ou bastion.
Les arguments %h et %p de l'indicateur -W ci-dessus spécifient de transférer l'entrée et la sortie standard vers l'hôte distant (%h) et le port de l'hôte distant (%p).
l'argument nc pour netcat.
Configuration basique
Ajoutez la configuration suivante dans le fichier ~/.ssh/config ou créez le s'il n'existe pas.
Host serveurB
User [utilisateur1]
HostName [Domaine ou IP du serveurB]
ProxyCommand ssh serveurA nc %h %p
Host serveurA
HostName [Domaine ou IP du serveurA]
User [utilisateur2]
Dans ce scénario, on lance la connexion ssh direction vers le serveurB. Le serveurA va demander le mot de passe, puis le serveurB va demander un mot de passe.
Config avec une clé ssh
C'est le scénario typique : l'authentification vers serveurA se fait avec votre clé ssh et le serveurB demande un mot de passe.
Ce type de rebond est nécessaire dans le cas d'une politique de mise en place de DMZ avec un poste où l'on doit se connecter en premier pour ensuite atteindre le serveur où se trouve les applications à maintenir, par exemple.
Cela permet de se connecter directement en SFTP avec des outils graphique comme jEdit par exemple.
Commencez par ajouter votre clé pour ne pas avoir à renseigner la paraphrase :
ssh-add
Et tapez votre paraphrase à l'invite. La paraphrase est stockée et elle ne sera plus demandée en mode "saisie" lors de la connexion.
Pour vérifier si votre cléest stockée :
ssh-add -l
Dans le fichier ~/.ssh/config, ajoutez l'attribut IdentityFile et le PATH vers votre clé.
Pour conservez de façon permanente l'ajout de la paraphrase, ajoutez les attributs UseKeychain yes et AddKeysToAgent yes
Host serveurB
User [utilisateur1]
HostName [Domaine ou IP du serveurB]
ProxyCommand ssh serveurA nc %h %p
Host serveurA
HostName [Domaine ou IP du serveurA]
User [utilisateur2]
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
Ensuite, lancez la commande :
ssh serveurB
L'invite demande uniquement le mot de passe du serveurB.
ProxyJump
La commande ProxyJump s'écrit aussi -J. Ajoutez la configuration suivante dans le fichier ~/.ssh/config ou créez le s'il n'existe pas.
Configuration avec clé SSH
Host serveurB
User [utilisateur2]
HostName [Domaine ou IP du serveurB]
ProxyJump serveurA
Host serveurA
HostName [Domaine ou IP du serveurA]
UseKeychain yes
AddKeysToAgent yes
User [utilisateur1]
IdentityFile ~/.ssh/id_rsa
Ensuite, lancez la commande :
ssh serveurB
L'invite demande uniquement le mot de passe du serveurB.
Resources
https://goteleport.com/blog/ssh-proxyjump-ssh-proxycommand/
https://www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump
https://medium.com/maverislabs/proxyjump-the-ssh-option-you-probably-never-heard-of-2d7e41d43464