あるマシンから別のマシンに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
を追加する必要があります。 --allow-secret-key-import
フラグを使用する必要はありません。マニュアルページによると、「これは古いオプションであり、どこでも使用されていません。」
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"
最後に、verifyその鍵は[ultimate]
ではなく[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