Mais cela peut créer une potentielle faille de sécurité : les utilisateurs ayant les droits suffisants sur le serveur (par exemple, root) pourront avoir accès à votre agent ssh, et donc utiliser vos clefs à votre insu, le temps de la session. Spécifier l’option “-c” lors de l’ajout de la clef à votre agent permet de limiter le risque, en vous demandant confirmation avant chaque utilisation de la clef.
# Utilisation de l’option "AgentForwarding" en spécifiant le flag "-A"
client> ssh -A user@62.23.55.220
# Vous pouvez désormais vous connecter sur le serveur cible : les clefs dans le SSH agent de votre client local seront utilisées.
bastion> ssh user@192.168.0.10
Bien évidemment, cela nécessite d’ajouter vos clefs publiques sur toutes les machines cibles.
Pour vous faciliter la vie, vous pouvez formaliser ces méthodes de connexion dans un fichier de configuration : celui par défaut (~/.ssh/config) ou bien un fichier qui vous spécifierez explicitement comme ceci :
client> ssh -F $FICHIER_DE_CONF_SSH
Pour notre exemple, cela donnera le fichier suivant :
Host bastion
Hostname 62.23.55.220
IdentityFile ~/.ssh/myPrivateKey
User user
Host serveurA
ProxyJump bastion
Hostname 192.168.0.10
IdentityFile ~/.ssh/myPrivateKey
User user
Vous pourrez ainsi vous connecter directement à vos machines, sans spécifier la mécanique derrière, comme suit :
client > ssh serveurA
En utilisant ProxyJump, vous n’effectuez pas de connexion depuis le bastion, car toutes vos connexions sont initiées directement depuis le client.