web-dev-qa-db-fra.com

clés ssh ssh-agent bash et ssh-add

Je suis nouveau sur les clés SSH. Quelqu'un peut-il expliquer le fonctionnement de ssh-agent bash et ssh-add?

J'ai besoin de comprendre ses composants internes à l'avenir.

25
maneeshshetty

Un agent est un programme qui garde vos clés en mémoire de sorte qu'il ne vous reste plus 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 les suivantes:

  • eval `ssh-agent` - ceci 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 argument, génère des commandes à interpréter par votre shell.)

  • exec ssh-agent bash - démarre une nouvelle instance du shell bash, remplaçant celle actuelle.

    (Avec un ou plusieurs arguments, ssh-agent ne génère rien, mais lance la commande spécifiée: dans ce cas, le shell bash, mais techniquement ça 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. (Lors du démarrage avec eval, l'agent resterait en cours d'exécution, mais inaccessible.)

Cependant, ceci ne démarre qu'un agent vide. Pour le rendre 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 .

40
grawity

En outre, vous souhaiterez peut-être ajouter des clés au début de la session.

Editez votre fichier ~/.bashrc 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

Il faut savoir que ssh-agent et .bashrc ne chargent pas trop de clés. Le nombre de tentatives par défaut pour le démon ssh est limité à 6. Cela peut être modifié dans /etc/ssh/sshd_config avec la valeur MaxAuthTries.

7
user1293603