あるマシンから別のマシンにgpgキーをコピーしようとしています。
実行します:
gpg --export ${ID} > public.key gpg --export-secret-key ${ID} > private.key
ファイルを新しいマシンに移動してから:
gpg --import public.key gpg: nyckel [ID]: public key [Name, e-mail] was imported gpg: Total number of treated keys: 1 gpg: imported: 1 (RSA: 1) gpg --allow-secret-key-import private.key sec [?]/[ID] [Creation date] [Name, e-mail] ssb [?]/[SUB-ID] [Creation date]
すべてが私には良さそうですが、その後:
$ gpg -d [file].gpg gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date] [Name, e-mail] gpg: decryption failed: secret key not accessible
したがって、エラーメッセージは、ファイルが[SUB-ID]で暗号化されていることを示しています。これは、秘密鍵のインポートがインポートしたことを示しているようです。両方のメッセージの[SUB-ID]は同じです。
それで、私は明らかに何か間違ったことをしていますが、何が起こっているのかわかりません。
回答
秘密鍵をインポートするには、コマンドラインに--import
を追加する必要があります。フラグ。manページによると:「これは廃止されたオプションであり、どこでも使用されていません。」
gpg --import private.key
コメント
回答
上記は部分的な回答にすぎません。完全な答えは次のとおりです。
gpg --import private.key
-
出力からKEYID(
FA0339620046E260
など)を指定します:gpg --edit-key {KEY} trust quit # enter 5<RETURN> (I trust ultimately) # enter y<RETURN> (Really set this key to ultimate trust - Yes)
-
または、以下の自動コマンドを使用します:
expect -c "spawn gpg --edit-key {KEY} trust quit; send \"5\ry\r\"; expect eof"
最後に、そのキーがivid = “81758f7809 [unknown]
gpg --list-keys
コメント
“>
回答
古いバージョンのgpgを含むバックアップからインポートしていました。古いコンピュータが利用できず、バックアップのみであったため、最初にエクスポートできませんでした。これが私にとってうまくいったことです。
gpg --import old_home_dir/.gnupg/pubring.gpg gpg --import old_home_dir/.gnupg/secring.gpg
できるようにしたい場合パスフレーズをすぐに入力せずに秘密鍵をインポートするには、--batch
オプションを使用します。
公開鍵を確認するには:
gpg --list-keys
秘密鍵を確認するには:
gpg --list-secret-keys
gpg2 -e -r [ID]
がこのキーが指定されたユーザー"に属しているという保証はありませんか?元の質問に含めたかったのですが、後で気づきました。