Puis-je saisir mon mot de passe gpg une seule fois et déverrouiller toutes mes sous-clés (signature, déchiffrement, authentification)?
Pour le moment, je dois saisir mon mot de passe gpg trois fois (pour la signature, pour le déchiffrement, pour l'authentification). C'est gênant.
J'ai essayé de trouver un script shell.
#!/bin/bash
set -x
set -e
set +o history
signing_key=77BB3C48
encryption_key=CE998547
tempfile="$(mktemp)"
echo "test" > testfile
unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"
gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"
Mais malheureusement, de cette façon, les mots de passe gnupg-agent ne mettent pas en cache le mot de passe. Cela peut-il être corrigé?
Informations système:
- Lorsque je n'utilise pas ce script shell, je n'ai aucun problème avec gnupg-agent. Lorsque je signe / déchiffre manuellement un fichier dans le shell, Pinentry demande le mot de passe deux fois, puis le met en cache jusqu'au redémarrage.
- Utiliser Debian Wheezy.
- version gpg:
dpkg -l | grep gnupg
ii gnupg 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement
ii gnupg-agent 2.0.22-3 i386 GNU privacy guard - password agent
ii gnupg-curl 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement (cURL)
ii gnupg2 2.0.22-3 i386 GNU privacy guard - a free PGP replacement (new v2.x)
J'ai demandé sur la liste de diffusion gnupg-users il y a un moment, mais aucune réponse.
Peut - être que cette réponse fonctionnerait? Peut gpg-connect-agent
- être est-il nécessaire?
shell-script
gpg
gpg-agent
adrelanos
la source
la source
exec 3<<<"$passphrase"
c'était nouveau même pour moi ... Et je viens de jeter une prime de 250 représentants à la réponse que vous citez.Réponses:
Il y a le démon gnome-keyring et l' hippocampe qui rend la gestion des clés et des mots de passe très facile.
Fondamentalement, si vous exécutez gnome-keyring-daemon en tant qu'agent gpg, il a la possibilité de déverrouiller automatiquement vos clés GPG. Il le fait en maintenant un trousseau de mots de passe, qui contient les mots de passe pour des sites comme les sites Web, les clés GPG, les clés SSH, etc. Ce trousseau de mots de passe est ensuite sécurisé avec son propre mot de passe. Vous le déverrouillez donc et le trousseau de clés gnome déverrouille tout le reste.
Comme bonus supplémentaire, gnome-keyring-daemon a un trousseau de "connexion" qui, si son mot de passe correspond à votre mot de passe utilisateur, le trousseau est automatiquement déverrouillé lorsque vous vous connectez.
Configuration
Comment faire fonctionner ça? Installez simplement gnome-keyring-daemon et seahorse. Le package doit effectuer toute la configuration du système pour vous. Assurez-vous simplement de ne pas démarrer un autre démon de trousseau de clés ou agent GPG . Celui qui commence le dernier "gagne", et le trousseau de clés gnome commence dans la pile PAM, donc très tôt.
Si vos clés GPG sont stockées dans
~/.gnupg
, il les récupérera automatiquement et agira comme agent GPG pour elles. Il en va de même pour les clés SSH stockées dans~/.ssh
La première fois que vous essayez d'utiliser la clé privée, vous obtiendrez une boîte de dialogue qui ressemble à ceci: (Je l'ai déclenchée par une simple ligne de commande
gpg -d myfile.gpg
)Sélectionnez simplement "Déverrouiller automatiquement ce trousseau de clés chaque fois que je suis connecté"
Maintenant, nous n'avons pas vraiment parlé d'hippocampe. C'est parce que ce n'est pas strictement nécessaire. Tout cela a été fait avec juste le démon gnome-keyring-daemon habituel. Cependant, avec Seahorse, vous pouvez afficher et gérer toutes vos clés et porte-clés. Et si vous utilisez l'authentification centralisée (LDAP), vous devrez l'utiliser lorsque vous modifiez votre mot de passe de connexion pour également changer le mot de passe sur le trousseau de clés "connexion" pour le faire correspondre.
Autres mots de passe
Comme évoqué précédemment, gnome-keyring-daemon peut également stocker les mots de passe des sites Web. La dernière fois que j'ai vérifié, Chrome le supporte, mais pas Firefox. Cependant, il existe une astuce pour le faire fonctionner.
Par défaut, vous aurez 2 trousseaux de clés, un trousseau de clés "connexion" et un trousseau de clés "par défaut". Le trousseau de clés "par défaut" est la valeur par défaut (d'où le nom). Mais c'est un trousseau de clés séparé, donc il ne se déverrouille pas automatiquement. Dans Seahorse, si vous cliquez avec le bouton droit sur le trousseau de clés «connexion», il y a une option pour «définir par défaut». Sélectionnez-le et il commencera à être utilisé pour les mots de passe. Personnellement, je supprime celui "par défaut" et j'utilise "login" pour tout.
la source
sudo apt-get remove gnupg-agent
etsudo apt-get install gnome-keyring seahorse
. Ensuite, créé un fichier/etc/X11/Xsession.d/999gnomekeyring
avec le contenu suivant.eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh) export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK
(Sinon, gnome-keyring ne démarrerait même pas dans KDE.) Maintenant, quand je lancegpg -d myfile.gpg
, on me demandera le mot de passe et il sera mis en cache, mais je n'ai jamais été invité avec cette boîte de dialogue./etc/X11/Xsession.d
. Cela est censé être fait dans la pile PAM. Vous devez avoir unesession optional pam_gnome_keyring.so auto_start
entrée dans un ou plusieurs fichiers dans/etc/pam.d
. Malheureusement, je n'utilise pas Debian donc je ne sais pas lequel. Si ce n'est pas là, c'est le problème./etc/X11/Xsession.d
,ps aux | grep gnome
montre que gnome-keyring-daemon ne démarre pas. (, Enlevé. Néanmoins)/usr/share/doc/libpam-gnome-keyring/README.Debian
ditIf you want to start gnome_keyring from another display manager, you need to add the following lines to the corresponding /etc/pam.d/?dm file: auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start
(en tant que tels sauts de ligne supprimés commentaires). Est-ce que, ajouté à/etc/pam.d/kdm
, redémarré kdm. Aucune charge d'agent, aucune disponible.kdm
et que vous l'avez mis/etc/pam.d/kdm
, cela aurait dû le faire. La seule chose que je peux suggérer si vous voulez toujours suivre cette route est de fouiller dans les journaux. Désolé pour le faux espoir, j'ai pensé que ce serait une solution simple pour vous.J'ai fait quelques recherches et le résultat est surprenant pour moi mais simple:
Appelé de cette façon,
gpg
il ne communique pasgpg-agent
du tout !gpg
est capable de faire toutes ces opérations par lui-même.Mais s'il
gpg-agent
ne sait même pas que quelque chose s'est produit, il peut difficilement connaître une phrase secrète qu'il ne connaissait pas auparavant.la source
Can I enter my gpg password just once and unlock all my sub keys (signing, decryption, authentication)?
) J'espère que le mot de passe sera intégrégpg-agent
ougpg-connect-agent
est en quelque sorte possible.