Dans ce guide, nous apprendrons comment simplifier le processus en utilisant les options que le client ssh nous offre, y compris l'utilisation de la SSH ProxyCommand
commande.
Contenu connexe :
- SSH – Génération et utilisation des clés SSH
Le scénario SSH
Voici comment se déroule la configuration de ssh.
+--------------+ +------------+ +-----------+
| Local machine| -> | JumpServer | -> | Dbserver |
+--------------+ +------------+ +-----------+
Le serveur de base de données n'est accessible qu'en se connectant au serveur intermédiaire - Jump Server. Première connexion au jumpserver
ssh [email protected]
Ensuite, à partir du serveur de saut, nous pouvons nous connecter au serveur de base de données
ssh [email protected]
Utilisation de l'option -J pour les derniers clients ssh
Pour les derniers clients ssh, l'option -J vous permet de spécifier l'hôte à utiliser comme hôte de saut. C'est le format
ssh -J [email protected] [email protected]
Voici comment se connecter à la télécommande à l'aide d'un serveur de saut public
ssh -J [email protected] [email protected]
Si vous devez spécifier une clé ssh, utilisez ce format :
ssh -J [email protected] [email protected] -i ~/.ssh/id_server_key
Utiliser ProxyCommand lorsque l'option -J n'est pas disponible
Dans les anciennes versions d'openssh, le -J n'est pas disponible. Utilisez donc la syntaxe suivante :
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]
C'est ainsi que j'utilise sur ma machine locale
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa
Pour les clients les plus anciens qui ne prennent pas en charge l'option -W
Dans ce cas, le ssh -tt commande. Au lieu de taper deux commandes ssh, je peux taper la commande tout-en-un suivante. Ceci est utile pour se connecter à un serveur de base de données distant via un pare-feu appelé jumpserver en tant qu'hôte de saut :
ssh -tt [email protected] ssh -tt [email protected]
Utilisation :
ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa
Où :
- Le -t l'option passée à la commande ssh force l'allocation de pseudo-tty. Cela peut être utilisé pour exécuter des programmes arbitraires basés sur l'écran sur une machine distante. Plusieurs -tt les options forcent l'allocation de tty, même si ssh n'a pas de tty local.
Enregistrement de la configuration dans le fichier ~/.ssh/config
Vous pouvez définir les options de configuration dans le ~/.ssh/config
dossier. Voici à quoi ressemblerait la configuration, nous spécifions la ProxyCommand :
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh [email protected] -W %h:%p
IdentityFile ~/.ssh/id_rsa
Vous pouvez également utiliser ProxyJump
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyJump [email protected]
IdentityFile ~/.ssh/id_rsa
Vous pouvez également enchaîner récursivement plusieurs hôtes de saut :
Host jumpsrver
Hostname 13.36.234.247
User rocky
Host dbserver2
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p jumpsrver
IdentityFile ~/.ssh/id_rsa
Host dbserver3
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p dbserver2
IdentityFile ~/.ssh/id_rsa
Cela fera transiter par les autres hôtes
ssh dbserver3