web-dev-qa-db-ja.com

GPGツール:秘密鍵の場所

別のMacbookに移動しました。 SSDが高価でディスクサイズが非常に小さいため、またこのインストールでクリーンに開始したかったため、ユーザーフォルダーを転送できませんでした。外部ケースの古いディスクを接続しましたが、2つの秘密鍵をエクスポートするのを忘れました。外部ディスクまたはTimeMachineから復元したいのですが。

GPG Toolsの秘密鍵はどこにあるので、エクスポートしたり、GPG Toolsフォルダー全体をコピーしたりできますか?

3
SPRBRN

デフォルトでは、GnuPGキーリングは(非表示の)フォルダー~/.gnupgに保存されます。つまり、ホームディレクトリの.gnupgフォルダです。フォルダ全体を新しいマシンにコピーするだけです。後でGnuPGが正しく機能しない場合、または権限が壊れていることを示すエラーメッセージが表示される場合は、ターミナルアプリケーションで次のコマンドを実行して(ユーザー名が同じであっても、内部IDが異なる可能性があります)、後で所有権を取得してください(ユーザーパスワードを照会します):

Sudo chown -R $USER:staff ~/.gnupg

または、を使用して秘密鍵をエクスポートすることもできます。

gpg --export-secret-keys [key-id] >secret-keys.gpg

コマンド。古いディスクからキーを回復したいので、それをあなたのコンピュータに接続してください。古いディスクのGnuPGキーリングで作業するには、--homedirオプションを使用します。これにより次のようになります。

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --list-secret-keys

利用可能な秘密鍵を一覧表示するには、

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] > secret-keys.gpg

それらをエクスポートします。中間ファイルに保存する代わりに、それらを新しいGnuPGキーリングに直接インポートすることもできます(GnuPG呼び出しで欠落している--homedirパラメーターを確認してくださいパイプ):

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] | gpg --import

2019/macOS Catalinaのアップデート:

Time Machineバックアップはマウントできますが、その場で変更することはできません。つまり、chownは失敗し、gpgで--homedirオプションを使用するには、次のストリームを取得する必要があります。

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

Chownは、次のようなメッセージのストリームで失敗します。

$ 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

Time Machineバックアップから.gnupgフォルダーをコピーし、chownし、上記のように秘密鍵を表示/抽出します。

$ 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
6
Jens Erat