Je suis nouveau dans les clés ssh. Quelqu'un peut-il expliquer comment le ssh-agent bash
et ssh-add
fonctionne?
J'ai besoin de comprendre ses internes à l'avenir.
Je suis nouveau dans les clés ssh. Quelqu'un peut-il expliquer comment le ssh-agent bash
et ssh-add
fonctionne?
J'ai besoin de comprendre ses internes à l'avenir.
Réponses:
Un agent est un programme qui garde vos clés en mémoire afin que vous n'ayez besoin de les déverrouiller qu'une fois , au lieu de chaque fois. ssh-agent le fait 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 l' instance de shell actuelle .
( 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 une nouvelle instance du bash
shell, remplaçant celle en cours.
(Avec un ou plusieurs arguments, ssh-agent ne produit rien, mais démarre 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. (Au démarrage 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 aux connexions ssh ou sftp .
En outre, vous souhaiterez peut-être ajouter des clés au début 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 par défaut d'essais pour le démon ssh est limité à 6. Cela peut être modifié /etc/ssh/sshd_config
avec la MaxAuthTries
valeur.
ssh-add
avec "&"? Supposez-vous que les fichiers de clés privées ne sont pas protégés?