GNU/Linux >> Linux の 問題 >  >> Linux

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

GnuPG の gpg コマンドを使用すると、公開鍵と秘密鍵を生成できます。このチュートリアルでは、gpg コマンドによって生成されたキーを使用して、暗号化されたファイルを送受信し、ファイルにデジタル署名します。

ファイルを暗号化して友達に送信

1.友達の公開鍵をインポート

シークレット ファイルを友人に送信する場合、最初に行うことは、友人の公開鍵をインポートすることです。友達が公開鍵を鍵サーバーにエクスポートしている場合、友達の公開鍵を「鍵サーバー」からインポートできます。

公開鍵を鍵サーバーにエクスポートする方法については、GnuPG の基本記事の「公開鍵のエクスポート」セクションを参照してください。

キー サーバーから公開キーをインポートするには、次の手順を実行します。上記のいずれかの方法でインポートできます。キーを正しくインポートするには、友人のキー ID または電子メール ID または実名を入力してください。

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'KEY-ID'

or

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'E-Mail ID'

or

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'Real Name'

ファイルから公開鍵をインポートするには、次の手順を実行します。友人が公開鍵を電子メールで送ってきた場合は、次のコマンドを使用してそれらの鍵をインポートできます

$ gpg --import myfriends_pub_key.gpg

2.インポートされた鍵サーバーを確認します

–list-keys オプションを使用して、友人の公開鍵が正常にインポートされたかどうかを確認できます

$ gpg --list-keys

/home/lakshmanan/.gnupg/pubring.gpg
-----------------------------------
pub   2048R/A7344E7D 2012-10-12
uid                  lakshmanan (My test GPG keys)
sub   2048R/96F8EF9B 2012-10-12

pub   2048R/FB2744A8 2012-12-03
uid                  raman (Ram's test ID)
sub   2048R/88EF55EE 2012-12-03

これで、友人のラマンの公開鍵がインポートされました。

3.友達の公開鍵を使って秘密のファイルを暗号化

友人の公開鍵を取得したので、「友人の公開鍵」を使用して暗号化されたファイルを彼に送信して、友人 (秘密鍵を持っている人) だけが復号化できるようにします。

$ gpg --encrypt --recipient raman a.txt

gpg: 88EF55EE: There is no assurance this key belongs to the named user

pub  2048R/88EF55EE 2012-12-03 raman (Ram's test ID)
 Primary key fingerprint: FF32 7764 A0AE 1E85 AC4B  CF17 8AED B292 FB27 44A8
      Subkey fingerprint: D6A5 7107 77C8 6845 2F86  765C EEED DD85 88EF 55EE

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

「公開鍵」があなたの友人のものであるという保証はないという警告があることに注意してください。時間が許せば、これを振り返ります。今のところ、私はフライドポテトを信頼しているので、鍵の使用に「はい」と答えています。

「a.txt.pgp」という名前のファイルが作成されます。エディターを使用して開くと、バイナリ データが含まれます。このファイルを友人に送信してください。

バイナリ コンテンツを送信したくない場合、またはバイナリの送信に問題がある場合は、以下に示すように ASCII ファイルを作成する –armor オプションを使用できます。

$ gpg --encrypt --armor --recipient raman a.txt

ファイルを復号化する

これで、友人は暗号化されたファイルを受信したことになります。ファイルの内容を表示するには、ファイルを復号化する必要があります。復号操作は友達の秘密鍵を使用して実行されるため、鍵の作成時に友達から提供されたパスフレーズを要求されます。

$ gpg --decrypt a.txt.gpg > secret.txt

これで、ファイル secret.txt に実際に書き込まれたテキストが含まれます。

暗号化されたファイルを複数の受信者に送信

–recipient または -r を使用して、複数の受信者にファイルを送信することもできます

$ gpg -r raman -r steve -r gopi --encrypt a.txt

上記のコマンドが与えられると、gpg はすべての受信者の公開鍵を使用してデータを暗号化し、その秘密鍵のいずれかがデータを復号化できるようにします。

このシリーズの次の記事では、データとタイムスタンプを使用してメッセージに署名する方法について説明します。


Linux
  1. GnuPGを使用してLinuxでファイル/フォルダーを暗号化および復号化する方法

  2. LinuxでPPKファイルをOpenSSHキーに変換し、SSHを使用してログインする方法は?

  3. GnuPg (デジタル署名) を使用して Linux でファイルにデジタル署名する方法

  1. .intputrc ファイルで Linux のマクロと関数のキーバインドを作成する方法

  2. Linux で GPG を使用して PGP キーを生成する方法

  3. bzip2 コマンドを使用して Linux で .bz2 ファイルを圧縮および解凍する方法

  1. Linuxでパスフレーズを使用してファイルを暗号化および復号化する

  2. TarとOpenSSLを使用してファイルとディレクトリを暗号化および復号化する方法

  3. GnuPG を使用してファイルを復号化するときに秘密鍵を指定する方法は?