ユーザーIDのないPGPキーをgpgにインポートする

ユーザーIDのないPGPキーをgpgにインポートする

当社はAuthora Edgeを使用してpgpキーを生成/管理します。会社は予期せず閉鎖し、既存のキーをgpgに移行しています。

公開鍵をインポートしようとすると、次のエラーが発生します。

# gpg --import ./Feedback-RSA-4096.public.asc
gpg: key 5DE4473F: no valid user IDs
gpg: this may be caused by a missing self-signature
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

ただし、--allow-non-selfsigned-uidを使用すると、この問題を解決できます。

# gpg --allow-non-selfsigned-uid --import ./Feedback-RSA-4096.public.asc
gpg: key 5DE4473F: accepted non self-signed user ID "Feedback-RSA-4096.public.asc"
gpg: key 5DE4473F: public key "Feedback-RSA-4096.public.asc" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

残念ながら、キーをインポートすると動作しません。

# gpg --expert --allow-non-selfsigned-uid --import Feedback-RSA-4096.private.txt
gpg: key 5DE4473F: no user ID
gpg: Total number processed: 1
gpg:       secret keys read: 1

キーをgpgにインポートする方法を知っていますか?エキスパートモードが利用可能であることを読んだが、これまでの試みは失敗した。

ベストアンサー1

実際、GnuPGはユーザーIDなしでキーを取得しません。幸い、この--allow-non-selfsigned-uidオプションはうまくいきましたとても簡単一時ユーザーIDを作成してインポートする前に、短いバイト文字列でファイルに書き込みます。この例では、ユーザーID "foobar"を使用しているため、バイト列は\xb4\x06foobar

これが機能するには、キーファイルがバイナリ形式である必要があります。ASCIIアーマーなし。ファイルをプレーンテキストエディタで読み取ることができ、で始まる場合は-----BEGIN PGP PRIVATE KEY BLOCK-----ASCIIで武装しているため、変換する必要があります。すでにバイナリの場合は、コピーを作成する必要があります。

ソースキーファイルがASCIIで保護されている場合は、バイナリコピーを作成します。

gpg -o Feedback-RSA-4096.private.gpg --dearmor Feedback-RSA-4096.private.txt

それ以外のソースキーファイルがバイナリファイルの場合は、名前が変更されたバイナリコピーを作成します。

cp Feedback-RSA-4096.private.txt Feedback-RSA-4096.private.gpg

上記のいずれのコマンドを使用しても、という名前のキーファイルのバイナリコピーが作成されますFeedback-RSA-4096.private.gpg。これにより、問題が発生しても元のキーファイルを台無しにする必要がなくなります。

ユーザーIDバイト文字列をバイナリコピーに追加します。

printf '\xb4\x06foobar' >> Feedback-RSA-4096.private.gpg

次のオプションを使用してキーファイルをインポートします--allow-non-selfsigned-uid

gpg --allow-non-selfsigned-uid --import Feedback-RSA-4096.private.gpg

ほぼ終わった...

自己署名されていないユーザーIDを持つキーの機能は厳しく制限されているため、キーをインポートした後、そのキーを使用してgpg --edit-key foobar編集モードに入る必要があります。編集モードに入った後、gpg> プロンプトで入力adduid画面の指示に従って実際の(自己署名)ユーザーIDを追加します。ユーザーIDを追加したら、編集モードでgpg> プロンプトに従って入力してください。1「foobar」ユーザーIDを選択し(*名前の横に選択されたことを示す表示があります)、次のように入力します。deluidユーザーIDの削除を確認してください。最後の入力save変更を保存してキー編集モードを終了します。

鍵パッケージには常に対応する公開鍵パッケージが含まれているため、鍵を含むファイルをインポートすると公開鍵もインポートされます。これは、公開鍵ファイルのインポートをスキップし、秘密鍵ファイルのみをインポートできることを意味します。

おすすめ記事