web-dev-qa-db-ja.com

WindowsでGPGファイルを解読するために秘密/秘密ASCキーをエクスポートする方法

背景:私の上司はASCキーをパブリックパーツとプライベートパーツと共にエクスポートしようとしましたが、ファイルを取得するたびにプライベートパーツが読み込まれず、ファイルの暗号化は解除されません。

以下を使用してASCキーのエクスポートを試みました。

  • Windows Application Kleopatra 2.1(gpg4winに含まれています)
  • WindowsアプリケーションGNU Privacy Assistant(gpg4winに含まれています)

            Error: "Decryption failed. Secret Key Not available." 
    

どのようにしてgpgファイルを復号化するために秘密または秘密のascキーを適切にエクスポートしますか?

81
Brian McCarthy

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の番号です。

173
Demento

上記の応答はすべて正しいですが、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つとして有効にします

30
higuita

ダークオッターによる治療をご覧ください

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  ######################

カワウソの精神では、「そして、それがあるべきです」。

17
Wolfram J

Gnupgから公開/秘密鍵をインポートするには:

gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key
9
SIFE

これは私のために働いてしまいました:

   gpg -a --export-secret-keys > exportedKeyFilename.asc 

.asc拡張子を保持する限り、任意の名前でkeyfilename.ascに名前を付けることができます。
このコマンドは、ユーザーのコンピューター上のすべての秘密鍵を、コマンドが呼び出された作業ディレクトリのkeyfilename.ascにコピーします。

すべてではなく特定の秘密鍵を1つだけエクスポートするには:

   gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumberは、エクスポートしようとしている目的のキーのキーIDの番号です。

6
Brian McCarthy

@Wolfram Jの答えと同様に、秘密鍵を暗号化する方法があります パスフレーズ付き

gpg --output - --armor --export $KEYID | \
    gpg --output private_key.asc --armor --symmetric --cipher-algo AES256

解読するための対応する方法:

gpg private_key.asc
4
Mateen Ulhaq

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