Un agent est un programme qui garde vos clés en mémoire afin que vous n'ayez qu'à les déverrouiller une fois , au lieu de chaque fois. ssh-agent fait cela pour les clés SSH.
Les méthodes habituelles pour démarrer ssh-agent sont :
-
eval `ssh-agent`
- cela exécute l'agent en arrière-plan et définit les variables d'environnement appropriées pour le courant instance de shell.(ssh-agent , lorsqu'il est démarré sans arguments, génère des commandes à interpréter par votre shell.)
-
exec ssh-agent bash
– démarre un nouveau instance dubash
shell, en remplacement de l'actuel.(Avec un ou plusieurs arguments, ssh-agent n'affiche rien, mais lance la commande spécifiée :dans ce cas, le
bash
shell, mais techniquement, cela pourrait être n'importe quoi.)La deuxième méthode est parfois préférée, car elle tue automatiquement ssh-agent lorsque vous fermez la fenêtre du terminal. (Lorsque vous le démarrez avec
eval
, l'agent resterait en cours d'exécution, mais inaccessible.)
Cependant, cela ne démarre qu'un agent vide. Pour le rendre réellement utile, vous devez utiliser ssh-add , qui déverrouille vos clés (généralement ~/.ssh/id_*
) et les charge dans l'agent, les rendant accessibles à ssh ou sftp connexions.
De plus, vous souhaiterez peut-être ajouter des clés au démarrage de la session.
Modifiez votre ~/.bashrc
fichier, et ajoutez :
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
Vérifiez vos clés avec ssh-add -l
Vous pouvez arrêter la session ssh-agent en cours avec ssh-agent -k
Quelque chose à savoir sur ssh-agent et .bashrc est de ne pas charger trop de clés. Le nombre d'essais par défaut pour le démon ssh est limité à 6. Cela peut être modifié dans /etc/ssh/sshd_config
avec le MaxAuthTries
valeur.