当社は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
変更を保存してキー編集モードを終了します。
鍵パッケージには常に対応する公開鍵パッケージが含まれているため、鍵を含むファイルをインポートすると公開鍵もインポートされます。これは、公開鍵ファイルのインポートをスキップし、秘密鍵ファイルのみをインポートできることを意味します。