Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Rebonds SSH » : différence entre les versions
Aucun résumé des modifications |
|||
| (2 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
Permet de se connecter directement à un serveur B (distant) en passant par le serveur A (distant) depuis son PC. | 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. | 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. | ||
| Ligne 61 : | Ligne 59 : | ||
L'invite demande uniquement le mot de passe du serveurB. | L'invite demande uniquement le mot de passe du serveurB. | ||
== ProxyJump == | == ProxyJump == | ||
La commande ProxyJump s'écrit aussi {{var|-J}}. | |||
Ajoutez la configuration suivante dans le fichier {{path|~/.ssh/config}} ou créez le s'il n'existe pas. | Ajoutez la configuration suivante dans le fichier {{path|~/.ssh/config}} ou créez le s'il n'existe pas. | ||
=== Configuration avec clé SSH === | === Configuration avec clé SSH === | ||
| Ligne 77 : | Ligne 76 : | ||
<syntaxhighlight lang="bash">ssh serveurB</syntaxhighlight> | <syntaxhighlight lang="bash">ssh serveurB</syntaxhighlight> | ||
L'invite demande uniquement le mot de passe du 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 | |||
Dernière version du 21 février 2023 à 08:21
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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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.