Linux で GPG キーをバックアップおよび復元する方法

公開: 2022-08-18
bash プロンプトを表示している Linux ラップトップ
Fatmawati achmad zaenuri/Shutterstock.com

プライバシーはますますホットな話題になっています。 Linux では、 gpgコマンドを使用すると、ユーザーは公開鍵暗号方式を使用してファイルを暗号化できます。この場合、暗号化鍵を失うと壊滅的です。 それらをバックアップする方法は次のとおりです。

OpenPGP と GNU プライバシー ガード

紙のハード コピーに対する電子ファイルの利点の 1 つは、電子ファイルを暗号化して、許可された人のみがアクセスできるようにすることです。 彼らが間違った手に渡ったとしても、それは問題ではありません。 ファイルの内容にアクセスできるのは、あなたと受信者だけです。

OpenPGP 標準では、公開鍵暗号化と呼ばれる暗号化のシステムについて説明しています。 その標準の GNU Privacy Guard 実装により、標準に従って暗号化および復号化するためのコマンドライン ツールであるgpgが生まれました。

この規格は、公開鍵暗号方式の概要を示しています。 「公開鍵」と呼ばれていますが、関係する鍵は 2 つあります。 各人は公開鍵と秘密鍵を持っています。 秘密鍵は、その名前が示すように、決して公開されたり、他人に送信されたりすることはありません。 公開鍵は安全に共有できます。 実際、スキームが機能するには公開鍵を共有する必要があります。

ファイルが暗号化されると、送信者の秘密鍵と受信者の公開鍵がエンコード プロセスで使用されます。 その後、ファイルを受信者に配信できます。 秘密鍵と送信者の公開鍵を使用して、ファイルを復号化します。

公開鍵と秘密鍵は、一致するペアとして生成され、特定の ID に結び付けられます。 機密情報を他の人に送信しない場合でも、自分のコンピューターでそれらを使用して、個人的なドキュメントに保護レイヤーを追加することができます。

Linux で GPG を使用してファイルを暗号化および復号化する方法
関連Linux で GPG を使用してファイルを暗号化および復号化する方法

暗号化には、世界クラスのアルゴリズムと暗号化機能が使用されます。 適切な公開鍵と秘密鍵がなければ、暗号化されたファイルにアクセスすることはできません。 また、鍵を紛失した場合も同様です。 新しいキーを生成しても役に立ちません。 ファイルを復号化するには、暗号化プロセスで使用されたキーが必要です。

言うまでもなく、キーをバックアップすることは、キーを復元する方法を知ることと同様に、最も重要です。 これらのタスクを実行する方法は次のとおりです。

.gnupg ディレクトリ

キーは、ホーム ディレクトリの「.gnupg」というディレクトリに保存されます。 このディレクトリには、暗号化されたファイルを送信した人の公開鍵も保存されます。 それらの公開鍵をインポートすると、それらはそのディレクトリ内のインデックス付きデータベース ファイルに追加されます。

もちろん、このディレクトリには何もプレーンテキストで保存されていません。 GPG キーを生成すると、パスフレーズの入力を求められます。 そのパスフレーズが何であるかを覚えていることを願っています。 あなたはそれを必要とするでしょう。 「.gnugp」ディレクトリのエントリは、それなしでは復号化できません。

treeユーティリティを使用してディレクトリを調べると、このサブディレクトリとファイルの構造が表示されます。 treeがまだコンピューターにない場合は、ディストリビューションのリポジトリにあります。

 ツリー .gnupg 

.gnupg ディレクトリのディレクトリ構造。

ディレクトリ ツリーの内容は次のとおりです。

  • openpgp-revocs.d : このサブディレクトリには失効証明書が含まれています。 これは、秘密鍵が一般に知られるようになったり、侵害されたりした場合に必要になります。 失効証明書は、古いキーを破棄して新しいキーを採用するプロセスで使用されます。
  • private-keys-v1.d : このサブディレクトリには秘密鍵が保存されます。
  • pubring.kbx : 暗号化されたファイル。 あなたのものを含む公開鍵と、それらに関するいくつかのメタデータが含まれています。
  • pubring.kbx~ : 「pubring.kbx」のバックアップコピーです。 「pubring.kbx」に変更が加えられる直前に更新されます。
  • trustdb.gpg : これは、自分の鍵と他の人に属する承認済みの公開鍵に対して確立した信頼関係を保持します。

いずれにせよ、隠しファイルや隠しフォルダーを含めて、ホーム ディレクトリの定期的かつ頻繁なバックアップを作成する必要があります。 当然、「.gnupg」ディレクトリがバックアップされます。

しかし、GPG キーは定期的なバックアップを保証するのに十分重要であると考えているかもしれませんし、デスクトップからラップトップにキーをコピーして両方のマシンに保持したいかもしれません。 結局のところ、あなたは両方のマシンであなたです。

バックアップするキーの決定

gpgに、GPG システムにあるキーを教えてもらうことができます。 --list-secret-keysオプションと--keyid-format LONGオプションを使用します。

 gpg --list-secret-keys --keyid-format LONG 

GPG キーの詳細を端末ウィンドウに一覧表示する

GPG は「/home/dave/.gnupg/pubring.kbx」ファイル内を調べていると言われています。

画面に表示されるものは、実際の秘密鍵ではありません。

  • 「sec」(シークレット)行には、暗号化のビット数(この例では 4096)、キー ID、キーが作成された日付、および「[SC]」が表示されます。 「S」は鍵がデジタル署名に使用できることを意味し、「C」はその鍵が認証に使用できることを意味します。
  • 次の行は鍵のフィンガープリントです。
  • 「uid」行には、キーの所有者の ID が保持されます。
  • 「ssb」行は、作成されたときの秘密のサブキーと「E.」を示しています。 「E」は、暗号化に使用できることを示します。

異なる ID で使用する複数のキー ペアを作成した場合は、それらも一覧表示されます。 このユーザーのためにバックアップするキー ペアは 1 つだけです。 バックアップには、このキーの所有者が収集し、信頼することを決定した、他の人に属する公開キーが含まれます。

バックアップ

gpgに、すべての ID のすべてのキーをバックアップするか、1 つの ID に関連付けられたキーをバックアップするように依頼できます。 秘密鍵、秘密鍵、および信頼データベース ファイルをバックアップします。

公開鍵をバックアップするには、 --exportオプションを使用します。 --export-options backupオプションも使用します。 これにより、ファイルを別のコンピューターに正しくインポートできるように、すべての GPG 固有のメタデータが含まれるようになります。

--outputオプションで出力ファイルを指定します。 そうしないと、出力はターミナル ウィンドウに送信されます。

 gpg --export --export-options バックアップ --output public.gpg 

公開 GPG キーのエクスポート

1 つの ID のキーのみをバックアップする場合は、キーに関連付けられた電子メール アドレスをコマンド ラインに追加します。 どのメールアドレスか思い出せない場合は、上記のように--list-secret-keysオプションを使用してください。

 gpg --export --export-options バックアップ --output public.gpg [email protected] 

単一 ID の公開 GPG キーのエクスポート

秘密鍵をバックアップするには、 --exportオプションの代わりに--export-secret-keysオプションを使用する必要があります。 これを別のファイルに保存してください。

 gpg --export-secret-keys --export-options バックアップ --output private.gpg 

秘密 GPG キーのエクスポート

これは秘密鍵であるため、先に進む前に GPG で認証する必要があります。

パスワードは求められないことに注意してください。 入力する必要があるのは、最初に GPG キーを作成したときに指定したパスフレーズです。 優れたパスワード マネージャーを使用すると、そのような情報を安全なメモとして保持できます。 それらを保管するのに適した場所です。

秘密鍵をエクスポートするための GPG パスフレーズの提供

パスフレーズが受け入れられると、エクスポートが実行されます。

信頼関係をバックアップするには、「trustdb.gpg」ファイルから設定をエクスポートする必要があります。 出力を「trust.gpg」というファイルに送信しています。 これはテキストファイルです。 catを使用して表示できます。

 gpg --export-ownertrust > trust.gpg
 猫の信頼.gpg 

GPG 信頼関係のエクスポート

作成した 3 つのファイルを次に示します。

 ls -hl *.gpg 

エクスポート コマンドによって作成される 3 つのファイル

これらを別のコンピューターに移動し、復元します。 これにより、そのマシンで ID が確立され、既存の GPG キーを使用できるようになります。

キーを別のコンピューターに移動するのではなく、安全であることを二重に確認したいのでバックアップするだけの場合は、それらを他のメディアにコピーして安全に保管してください。 たとえ彼らが悪者の手に渡ったとしても、あなたの公開鍵はとにかく公開されているので、害はありません. また、パスフレーズがないと、秘密鍵を復元できません。 それでも、バックアップを安全かつプライベートに保ちます。

ファイルを Manjaro 21 コンピューターにコピーしました。

 ls *.gpg 

エクスポートされたファイルが Manjaro コンピューターに転送されました

デフォルトでは、Manjaro 21 は Z シェルzshを使用するため、見た目が異なります。 しかし、これは問題ではありません。何にも影響しません。 私たちが行っていることは、シェルではなくgpgプログラムによって管理されています。

キーをインポートするには、 --importオプションを使用する必要があります。

 gpg --import public.gpg 

公開 GPG キーのインポート

インポートされると、キーの詳細が表示されます。 「trustdb.gpg」ファイルも作成されます。 秘密鍵のインポートも同様に簡単です。 --importオプションを再度使用します。

 gpg --import private.gpg 

秘密 GPG キーのインポート

パスフレーズの入力を求められます。

秘密 GPG キーをインポートするためのパスフレーズの入力

「パスフレーズ」フィールドに入力し、「Tab」キーを押して「Enter」を押します。

インポートされた秘密 GPG キーの確認

インポートされたキーの詳細が表示されます。 私たちの場合、キーは 1 つしかありません。

信頼データベースをインポートするには、次のように入力します。

 gpg --import-ownertrust trust.gpg 

GPG 信頼関係のインポート

--list-secret-keysオプションをもう一度使用して、すべてが適切にインポートされたことを確認できます。

 gpg --list-secret-keys --keyid-format LONG 

インポートが機能したことを確認する

これにより、以前に Ubuntu コンピューターで見たのとまったく同じ出力が得られます。

プライバシーを保護する

GPG キーをバックアップして安全であることを確認してください。 コンピューターに障害が発生した場合、または新しいモデルにアップグレードしたばかりの場合は、キーを新しいマシンに転送する方法を知っていることを確認してください.

関連: Linux システムを rsync でバックアップする方法