Der geheime Schlüssel kann nicht ohne Passphrase exportiert werden

966
Lasse Halberg Haarbye

Ich habe meine Passphrase für meinen geheimen GPG-Schlüssel vergessen und möchte sie exportieren, damit ich sie mit ein paar möglichen Schlüsseln brutal zwingen kann.

Beim Ausführen gpg --export-secret-keyswird der gpg-Agent jedoch immer nach meiner Passphrase gefragt, unabhängig von den Optionen, die ich gpg gebe. --batch, --yesUnd --passphrase-fdhaben keine Wirkung.

Ich verwende GPG 2.1.15.

Ich habe versucht, einen geheimen Schlüssel auf einem Computer zu exportieren, auf dem GPG 2.0.22 ohne Probleme ausgeführt wird. Ist das noch möglich?

Wenn nicht, ist mein Schlüssel verloren.

2
Für alle, die sich fragen, warum GPG beim Exportieren eines geheimen Schlüssels nach der Passphrase fragt, nehme ich an, dass der Grund derselbe ist wie der Grund, warum es [beim Importieren] fragt (https://superuser.com/questions/1135812/gpg2-asking- for-passphrase-when-importing-secret-keys) ([siehe auch] (https://crypto.stackexchange.com/questions/33183/why-does-gpg-export-secret-keys-ask-for-a- Passwort)). balu vor 5 Jahren 0

1 Antwort auf die Frage

2
Matei David

Sie können den Schlüssel "von Hand" wie folgt übertragen, ohne zu versuchen, ihn zu entschlüsseln:

# create temporary destination dir mkdir -m 700 /tmp/alt-gnupg # transfer public keys using export/import, assuming name "user-000" gpg2 --export user-000 | gpg2 --homedir /tmp/alt-gnupg --import # transfer private keys using file copy for g in $(gpg2 --list-keys --with-keygrip --with-colons 'user-000' | awk -F: '$1=="grp" '); do cp ~/.gnupg/private-keys-v1.d/$g.key /tmp/alt-gnupg/private-keys-v1.d done # check you got them gpg2 --homedir /tmp/alt-gnupg --list-secret-keys 

Dies funktioniert, weil die privaten Schlüssel in Dateien des Formulars gespeichert werden <keygrip>.keyund wir die Schlüsselgriffe ohne Entriegelung finden können.

Um die Schlüssel brutal zu erzwingen:

# use alternate gnupg dir export GNUPGHOME=/tmp/alt-gnupg # create dummy encrypted file echo hello | gpg2 --encrypt --recipient user-000 --armor >/tmp/msg.asc # tell gpg-agent to accept loopback pinentry echo allow-loopback-pinentry >$/gpg-agent.conf # restart gpg-agent gpg-connect-agent /bye # and now... for p in pass1 pass2; do gpg2 --batch --pinentry-mode=loopback --passphrase "$p" --quiet --decrypt /tmp/msg.asc >/dev/null 2>&1 && echo "yes!! pass: $p" done 
Gibt es eine Möglichkeit, im OpenPGP-Format zu exportieren? Lasse Halberg Haarbye vor 7 Jahren 0
Fügen Sie das Flag --opengpg an der entsprechenden Stelle hinzu linuxdev2013 vor 7 Jahren 0