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 dubashshell, 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
bashshell, 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.