Ich bin auf ein anderes MacBook umgestiegen. Wegen teurer SSDs und wirklich kleinerer Festplattengröße und weil ich mit dieser Installation sauber beginnen wollte, konnte ich den Benutzerordner nicht übertragen. Ich habe die alte Festplatte in einem externen Gehäuse angeschlossen und sehe, dass ich vergessen habe, zwei private Schlüssel zu exportieren. Ich möchte sie von der externen Festplatte oder von Time Machine wiederherstellen.
Wo finde ich die privaten Schlüssel der GPG-Tools, damit ich sie exportieren oder den gesamten GPG-Tools-Ordner kopieren kann?
Antwort1
Standardmäßig werden die GnuPG-Schlüsselbunde im (versteckten) Ordner gespeichert ~/.gnupg
; mit anderen Worten im .gnupg
Ordner in Ihrem Home-Verzeichnis. Sie können den gesamten Ordner einfach auf die neue Maschine kopieren. Wenn GnuPG danach nicht richtig funktioniert oder eine Fehlermeldung mit Hinweis auf fehlerhafte Berechtigungen anzeigt, stellen Sie sicher, dass Sie danach den Besitz übernehmen (auch wenn Ihr Benutzername derselbe ist, die internen IDs können unterschiedlich sein), indem Sie den folgenden Befehl in der Terminal-Anwendung ausführen (dieser fragt nach Ihrem Benutzerkennwort):
sudo chown -R $USER:staff ~/.gnupg
Alternativ können Sie Ihre geheimen Schlüssel exportieren mit dem
gpg --export-secret-keys [key-id] >secret-keys.gpg
Befehl. Da Sie die Schlüssel von Ihrer alten Festplatte wiederherstellen möchten, schließen Sie diese an Ihren Computer an. Um mit dem GnuPG-Schlüsselbund der alten Festplatte zu arbeiten, verwenden Sie die --homedir
Option, die zu etwas wie
gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --list-secret-keys
um die verfügbaren geheimen Schlüssel aufzulisten und
gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] > secret-keys.gpg
um sie zu exportieren. Sie können sie auch direkt in Ihren neuen GnuPG-Schlüsselbund importieren, anstatt sie in einer Zwischendatei zu speichern (beachten Sie den fehlenden --homedir
Parameter im GnuPG-Aufrufnachdas Rohr):
gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] | gpg --import
Update für 2019 / macOS Catalina:
Time Machine-Backups können zwar gemountet, aber nicht direkt vor Ort geändert werden. Das bedeutet, dass ein Chown fehlschlägt und dass Sie die --homedir
Option mit GPG nicht verwenden können, ohne einen Stream davon zu erhalten:
gpg: failed to create temporary file '/Volumes/<Backup Drive>/Backups.backupdb/<Compute Name>/Latest/Macintosh HD/Users/<name>/.gnupg/': Permission denied
gpg: can't connect to the agent: Permission denied
Der Chown schlägt mit einem Nachrichtenstrom wie diesem fehl:
$ sudo chown -R user:staff .gnupg
chown: .gnupg/tofu.db: Operation not permitted
chown: .gnupg/trustdb.gpg: Operation not permitted
chown: .gnupg: Operation not permitted
Kopieren Sie den Ordner .gnupg aus dem Time Machine-Backup, chownen Sie ihn und zeigen Sie die privaten Schlüssel an/extrahieren Sie sie wie oben beschrieben:
$ mkdir ~/gpg_recovery
$ cp -r /Volumes/<Backup Drive>/Backups.backupdb/<Compute Name>/Latest/Macintosh HD/Users/<name>/.gnupg ~/gpg_recovery/
$ cd ~/gpg_recovery/
$ sudo chown -R $USER:staff .gnupg
Password:
$ gpg --homedir ~/gpg_recovery/.gnupg --list-secret-keys
$ gpg --homedir ~/gpg_recovery/.gnupg --export-secret-keys | gpg --import
gpg: key xxxxxxxxxxxxxxxx: public key "xxxxxxxxxxxxxxxxxxxxxxx" imported
gpg: key xxxxxxxxxxxxxxxx: secret key imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
Antwort2
Windows
Auf Windows-Systemen können Sie eine Software wie verwendenGpg4win. In diesem Fall können Sie Ihre (privaten) Schlüssel migrieren, indem Sie die folgenden Dateien auf Ihren neuen Computer kopieren:
- Datei
%AppData%\gnupg\pubring.kbx
- Datei
%AppData%\gnupg\trustdb.gpg
- Gesamter Ordner
%AppData%\gnupg\private-keys-v1.d
Um Ihre aktuell erkannten (installierten) lokalen Schlüssel aufzulisten, verwenden Sie gpg --list-secret-keys --keyid-format LONG
. Getestet mit gpg (GnuPG) 2.3.4 (2021), installiert überGpg4win4.0.0.
Antwort3
Eine kleine Ergänzung zur Antwort von @jens-erat:
In eine Datei exportieren:
gpg --output private_keys.backup --armor --export-secret-keys
SSH-Import
gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import
Verweis:So exportieren Sie einen privaten und öffentlichen GPG-Schlüssel in eine Datei