Kann ich mein GPG-Passwort nur einmal eingeben und alle meine Unterschlüssel entsperren (Signieren, Entschlüsseln, Authentifizieren)?
Im Moment muss ich mein GPG-Passwort dreimal eingeben (zum Signieren, Entschlüsseln, zur Authentifizierung). Dies ist unpraktisch.
Ich habe versucht, ein Shell-Skript zu entwickeln.
#!/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"
Leider speichert das Passwort von gnupg-agent das Passwort nicht zwischen. Kann das behoben werden?
System Information:
- Wenn ich dieses Shell-Skript nicht verwende, habe ich keine Probleme mit gnupg-agent. Wenn ich eine Datei in der Shell manuell signiere / entschlüssele, fragt pinentry zweimal nach dem Kennwort und speichert es dann bis zum Neustart zwischen.
- Verwenden von Debian Wheezy.
- GPG-Version:
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)
Ich habe vor einiger Zeit auf der Mailingliste von gnupg-users gefragt , aber keine Antwort.
Vielleicht würde diese Antwort funktionieren? Vielleicht gpg-connect-agent
ist erforderlich?
shell-script
gpg
gpg-agent
adrelanos
quelle
quelle
exec 3<<<"$passphrase"
war sogar für mich neu ... Und ich habe gerade ein Kopfgeld von 250 Wiederholungen auf die Antwort geworfen, die Sie zitieren.Antworten:
Es gibt den Gnome-Keyring-Daemon und das Seepferdchen, die die Schlüssel- und Passwortverwaltung sehr einfach machen.
Wenn Sie gnome-keyring-daemon als GPG-Agent ausführen, können Sie Ihre GPG-Schlüssel automatisch entsperren. Dazu wird ein Kennwortschlüsselring verwaltet, der die Kennwörter für Websites, GPG-Schlüssel, SSH-Schlüssel usw. enthält. Dieser Kennwortschlüsselring wird dann mit einem eigenen Kennwort gesichert. Sie entsperren es also und der Gnomschlüsselring entsperrt alles andere.
Als zusätzlichen Bonus verfügt gnome-keyring-daemon über einen "Login" -Schlüsselring. Wenn das Kennwort mit Ihrem Benutzerkennwort übereinstimmt, wird der Schlüsselring beim Anmelden automatisch entsperrt.
Aufbau
Wie bringt man das zum Laufen? Installieren Sie einfach Gnome-Keyring-Daemon und Seepferdchen. Das Paket sollte die gesamte Systemkonfiguration für Sie übernehmen. Stellen Sie einfach sicher, dass Sie keinen anderen Schlüsselring-Daemon oder GPG-Agenten starten . Was zuletzt startet, "gewinnt" und der Gnomschlüsselring startet im PAM-Stack, also extrem früh.
Wenn Ihre GPG-Schlüssel in gespeichert sind
~/.gnupg
, werden sie automatisch abgeholt und fungieren als GPG-Agent für sie. Gleiches gilt für SSH-Schlüssel, die in gespeichert sind~/.ssh
Wenn Sie zum ersten Mal versuchen, den privaten Schlüssel zu verwenden, wird ein Dialogfeld angezeigt, das folgendermaßen aussieht: (Ich habe ihn über eine einfache Befehlszeile ausgelöst.
gpg -d myfile.gpg
)Wählen Sie einfach "Diesen Schlüsselring automatisch entsperren, wenn ich angemeldet bin".
Jetzt haben wir nicht wirklich über Seepferdchen gesprochen. Das liegt daran, dass es nicht unbedingt notwendig ist. All dies wurde nur mit dem regulären Gnome-Keyring-Daemon durchgeführt. Mit Seepferdchen können Sie jedoch alle Ihre Schlüssel und Schlüsselringe anzeigen und verwalten. Wenn Sie die zentralisierte Authentifizierung (LDAP) verwenden, müssen Sie diese beim Ändern Ihres Anmeldekennworts verwenden, um auch das Kennwort auf dem Schlüsselring "Anmelden" entsprechend zu ändern.
Andere Passwörter
Wie bereits erwähnt, kann gnome-keyring-daemon auch Website-Passwörter speichern. Das letzte Mal, als ich überprüft habe, dass Chrome dies unterstützt, Firefox jedoch nicht. Es gibt jedoch einen Trick, um es zum Laufen zu bringen.
Standardmäßig haben Sie 2 Schlüsselringe, einen "Login" -Schlüsselring und einen "Standard" -Schlüsselring. Der "Standard" -Schlüsselring ist der Standard (daher der Name). Da es sich jedoch um einen separaten Schlüsselring handelt, wird er nicht automatisch entsperrt. Wenn Sie in Seepferdchen mit der rechten Maustaste auf den Schlüsselring "Anmelden" klicken, können Sie "als Standard festlegen". Wählen Sie diese Option, um sie für Kennwörter zu verwenden. Ich persönlich lösche einfach die "Standard" und benutze "Login" für alles.
quelle
sudo apt-get remove gnupg-agent
undsudo apt-get install gnome-keyring seahorse
. Erstellen Sie dann eine Datei/etc/X11/Xsession.d/999gnomekeyring
mit dem folgenden Inhalt.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
(Andernfalls würde der Gnome-Schlüsselring nicht einmal in KDE gestartet.) Wenn ich jetzt startegpg -d myfile.gpg
, werde ich nach dem Passwort gefragt und es wird zwischengespeichert, aber ich wurde nie mit diesem Dialog aufgefordert ./etc/X11/Xsession.d
. Das soll im PAM-Stack gemacht werden. Sie sollten einensession optional pam_gnome_keyring.so auto_start
Eintrag in einer oder mehreren Dateien in haben/etc/pam.d
. Leider benutze ich kein Debian, daher weiß ich nicht welches. Wenn das nicht da ist, dann ist das das Problem./etc/X11/Xsession.d
,ps aux | grep gnome
dass der Gnome-Schlüsselring-Daemon nicht gestartet wird, ohne etwas hinzuzufügen . (Trotzdem entfernt.)/usr/share/doc/libpam-gnome-keyring/README.Debian
SagtIf 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
(Zeilenumbrüche durch se Kommentare entfernt). Hat das, hinzugefügt/etc/pam.d/kdm
, kdm neu gestartet. Keine Agentenlast, keine verfügbar.kdm
und es einfügen/etc/pam.d/kdm
, sollte es das getan haben. Das einzige, was ich vorschlagen kann, wenn Sie diesen Weg noch verfolgen möchten, ist das Durchsuchen von Protokollen. Entschuldigung für die falsche Hoffnung, dachte, dies wäre eine einfache Lösung für Sie.Ich habe einige Nachforschungen angestellt und das Ergebnis ist für mich überraschend, aber einfach:
Wenn diese Art und Weise genannt
gpg
kommuniziert nicht mitgpg-agent
überhaupt !gpg
ist in der Lage, alle diese Operationen selbst durchzuführen.Aber wenn er
gpg-agent
nicht einmal weiß, dass etwas passiert ist, kann er kaum eine Passphrase kennen, die er vorher nicht kannte.quelle
Can I enter my gpg password just once and unlock all my sub keys (signing, decryption, authentication)?
) Ich hoffe, das Passwort ingpg-agent
odergpg-connect-agent
irgendwie möglich zu leiten.