J'ai récemment créé une clé PGP pour signer mes commits et cela fonctionne correctement. J'ai aussi découvert que gpg s'intègre mieux avec mon système d'exploitation. (Kubuntu) que ssh-agent.
Je suis paresseux et j'aimerais éviter d'avoir à remplacer ma clé SSH dans tous les différents serveurs auxquels j'ai accès.
Existe-t-il une option pour moi d'importer ma clé SSH existante en tant que sous-clé de ma clé PGP, puis d'exécuter l'agent gpg avec le support ssh-agent afin que lorsque j'exécute ssh something
il utilise ma sous-clé et utilise l'agent gpg pour demander la phrase secrète ?
Idéalement, je ne fournis la passhprase qu'une seule fois, pour ma clé PGP principale, puis chaque fois que je valide ou que je me connecte via ssh, elle utilise la bonne.
C'est possible? (Je sais qu'ils sont de format différent, mais c'est vraiment tout ce que je sais)
Réponse acceptée :
Tout ce dont vous avez besoin :
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
ssh-add -c -t 3600 ~/.ssh/id_rsa # set the cache lifetime as 3600s
N'hésitez pas ensuite à supprimer les fichiers :mv ~/.ssh/id_rsa.* /path/to/backup
.
Vous pouvez maintenant vous connecter en SSH pour tester.
Après tout, n'oubliez pas d'ajouter les environnements à votre profil, comme .profile
ou ~/.bashrc
.
(Ps :Vous pouvez trouver la clé ssh (au format gpg) dans ~/.gnupg/private-keys-v1.d/
et avec keygrip comme nom, qui peut être utilisé pour être ajouté en tant que sous-clé.
Référence :
https://incenp.org/notes/2015/gnupg-for-ssh-authentication.html
https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html