Enregistrez les identités ajoutées par ssh-add afin qu'elles persistent

J'ai récemment configuré openssh afin que je puisse l'utiliser avec git .

En cours de configuration (selon cet article ), j'ai exécuté les commandes:

 $ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/<name of key> 

Quelque temps plus tard, après que je me suis déconnecté et que j'ai essayé d'utiliser git push j'ai eu une erreur. La solution à cette erreur a été l'exécution de ces mêmes commandes à nouveau.

Dites-moi comment je peux

  • Gardez le ssh-agent cours d'exécution, donc je n'ai pas à démarrer un nouveau
  • Rappelez-vous les clés que j'ai ajoutées, donc je n'ai pas à les ajouter toutes les fois

Juste pour clarifier, j'utilise zsh pour que certaines fonctionnalités bash ne fonctionnent pas dans mon .zshrc.

À quoi sert ssh-agent et comment ça fonctionne?

Le ssh-agent garde vos clés cryptées en toute sécurité dans la mémoire et dans votre session. Il n'y a pas de moyen raisonnable et sécurisé de préserver les clés chiffrées parmi les redémarrages / re-logins.

OK, comment puis-je l'automatiser?

Automatisez le démarrage de ssh-agent

Ajouter

 [ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)" 

À votre ~/.bashrc ou autre script de démarrage ( ~/.zshrc ).

Automatisez l'ajout des touches

Les clés peuvent être automatiquement ajoutées lors de la première utilisation, lorsque vous ajoutez

 AddKeysToAgent yes 

À votre ~/.ssh/config .

Pour plus d'informations sur ~/.ssh/config voir man ssh_config .

Ajoutez ceci à ~/.bashrc

 if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi