背景:私の上司はASCキーをパブリックパーツとプライベートパーツと共にエクスポートしようとしましたが、ファイルを取得するたびにプライベートパーツが読み込まれず、ファイルの暗号化は解除されません。
以下を使用してASCキーのエクスポートを試みました。
WindowsアプリケーションGNU Privacy Assistant(gpg4winに含まれています)
Error: "Decryption failed. Secret Key Not available."
どのようにしてgpgファイルを復号化するために秘密または秘密のascキーを適切にエクスポートしますか?
GPGのコマンドラインツール を使用して秘密キーをエクスポートできます。 Windowsシェルで動作します。次のコマンドを使用します。
gpg --export-secret-keys
--export
を使用した通常のエクスポートには秘密鍵が含まれないため、--export-secret-keys
を使用する必要があります。
編集:
コメントに記載されている情報をまとめると、ID 1234ABCDの特定のキーをファイルsecret.ascにエクスポートできるコマンドです。
gpg --export-secret-keys --armor 1234ABCD > secret.asc
次のコマンドを使用して、必要なIDを見つけることができます。 IDは、2番目の列の2番目の部分です。
gpg --list-keys
すべてではなく特定の秘密鍵を1つだけエクスポートするには:
gpg --export-secret-keys keyIDNumber > exportedKeyFilename.asc
keyIDNumberは、エクスポートしようとしている目的のキーのキーIDの番号です。
上記の応答はすべて正しいですが、1つの重要なステップが欠落している可能性があります。インポートしたキーを編集し、そのキーを「最終的に信頼」する必要があります
gpg --edit-key (keyIDNumber)
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)
1 = I don't know or won't say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu
5を選択して、インポートした秘密キーをキーの1つとして有効にします
ダークオッターによる治療をご覧ください
http://montemazuma.wordpress.com/2010/03/01/moving-a-gpg-key-privately/
これには、鍵を転送する合理的に安全な方法が含まれます。繰り返し使用するために、以下に示すシェルスクリプトにその推奨事項を含めることができます。
最初に表示されるリストから必要なKEYIDを取得します
$ gpg -K
結果のリストから、転送に必要なKEYID(秒に続く8つの16進数)をメモします。
次に、最初のアカウントでテスト済みのシェルスクリプト「export_private_key」を呼び出し、pubkey.gpg + keys.ascを生成します。その後、2番目のアカウント「import_private_key」で呼び出します。以下は、catで表示されるコンテンツです(コンテンツのコピー&ペースト):
$ cat export_private_key
gpg -K
echo "select private key"
read KEYID
gpg --output pubkey.gpg --export $KEYID
echo REMEMBER THE COMING PASS-PHRASE
gpg --output - --export-secret-key $KEYID | \
cat pubkey.gpg - | \
gpg --armor --output keys.asc --symmetric --cipher-algo AES256
ls -l pubkey.gpg keys.asc
#################### E X P O R T _ P R I V A T E _ K E Y #####################
次に、「pubkey.gpg」(必要に応じて)とプライベートの「keys.asc」を2番目のアカウントに移し、以下に示すプログラムを起動します。
$ cat import_private_key
gpg --no-use-agent --output - keys.asc | gpg --import
################### I M P O R T _ P R I V A T E _ K E Y ######################
カワウソの精神では、「そして、それがあるべきです」。
Gnupgから公開/秘密鍵をインポートするには:
gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key
これは私のために働いてしまいました:
gpg -a --export-secret-keys > exportedKeyFilename.asc
.asc拡張子を保持する限り、任意の名前でkeyfilename.ascに名前を付けることができます。
このコマンドは、ユーザーのコンピューター上のすべての秘密鍵を、コマンドが呼び出された作業ディレクトリのkeyfilename.ascにコピーします。
すべてではなく特定の秘密鍵を1つだけエクスポートするには:
gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc
keyIDNumberは、エクスポートしようとしている目的のキーのキーIDの番号です。
@Wolfram Jの答えと同様に、秘密鍵を暗号化する方法があります パスフレーズ付き :
gpg --output - --armor --export $KEYID | \
gpg --output private_key.asc --armor --symmetric --cipher-algo AES256
解読するための対応する方法:
gpg private_key.asc
1.秘密鍵をエクスポートする(これはあなたの上司があなたのためにすべきことです)
gpg --export-secret-keys yourKeyName > privateKey.asc
2.秘密鍵のインポート(privateKeyのインポート)
gpg --import privateKey.asc
3.まだ完了していませんが、最終的にキーを信頼する必要があります。最終的にキーも信頼することを確認する必要があります。
gpg --edit-key yourKeyName
Trust、5、yを入力してから終了します
ソース: https://medium.com/@GalarnykMichael/public-key-asymmetric-cryptography-using-gpg-5a8d914c9bca