別の Macbook に切り替えました。高価な SSD と非常に小さいディスク サイズのため、またこのインストールでクリーンな状態から開始したかったため、ユーザー フォルダーを転送できませんでした。外部ケースに古いディスクを接続しましたが、2 つの秘密鍵をエクスポートし忘れていました。外部ディスクまたは Time Machine からそれらを復元したいと思います。
GPG Tools の秘密キーはどこにありますか? エクスポートしたり、GPG Tools フォルダー全体をコピーしたりできますか?
答え1
デフォルトでは、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キーリングに直接インポートすることもできます(--homedir
GnuPG呼び出しのパラメータが欠落していることに注意してください)。後パイプ):
gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] | gpg --import
2019 / macOS Catalina のアップデート:
Time Machine のバックアップはマウントできますが、その場で変更することはできません。つまり、chown は失敗し、--homedir
次のストリームを取得せずに gpg でオプションを使用することはできません。
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
答え2
ウィンドウズ
Windowsシステムでは次のようなソフトウェアを使用できます。Gpg4winこの場合、次のファイルを新しいコンピュータにコピーすることで、(秘密) キーを移行できます。
- ファイル
%AppData%\gnupg\pubring.kbx
- ファイル
%AppData%\gnupg\trustdb.gpg
- フォルダ全体
%AppData%\gnupg\private-keys-v1.d
現在認識されている(インストールされている)ローカルキーを一覧表示するにはgpg --list-secret-keys --keyid-format LONG
、 を使用します。gpg(GnuPG)2.3.4(2021)をインストールしてテストしました。Gpg4win4.0.0。
答え3
@jens-erat の回答に少し追加します:
ファイルにエクスポート:
gpg --output private_keys.backup --armor --export-secret-keys
SSHインポート
gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import