Linux
 Computer >> コンピューター >  >> システム >> Linux

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

隠しておきたいファイルやメッセージはありませんか?それらを確実に守るためには、GPG暗号化キーの活用がおすすめです。Linux環境であれば、GnuPGさえインストールされていれば、コマンドラインから手軽にファイルを暗号化できます。

この記事では、いくつかの簡単なターミナルコマンドだけでGPGキーを生成し、実際の暗号化に活用するまでの手順を詳しく解説します。

GnuPGのインストール

まずはGnuPGをインストールしましょう。Debian系やUbuntu系のディストリビューションでは、ターミナルを開いて次のコマンドを実行します。

sudo apt install gnupg

FedoraなどDNFやYUMを採用しているディストリビューションの場合は、以下のいずれかを実行してください。

yum install gnupg
dnf install gnupg

Arch Linuxを使用している場合は、次のコマンドでインストールできます。

pacman -S gnupg

なお、ソースコードをダウンロードして自分でビルドする方法もあります。

GPGキーペアの生成

GnuPGのインストールが完了したら、次は自分専用のGPGキーペア(秘密鍵と公開鍵)を生成します。

秘密鍵はマスターキーに相当し、ファイルの暗号化・復号化や、デジタル署名の作成に使用します。絶対に他人に渡してはいけない重要な鍵です。

一方、公開鍵は自由に配布できる鍵です。受け取った相手は、この公開鍵を使って「そのファイルが本当にあなたの鍵で作られたものか」を検証したり、あなた宛てにファイルを暗号化して送信したりできます。復号できるのは秘密鍵を持つあなただけです。

キーペアを生成するには、ターミナルで以下のコマンドを実行します。

gpg --gen-key

コマンドを実行すると、氏名とメールアドレスの入力を求められます。入力してEnterキーを押しましょう。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

続いて、入力内容の確認・修正・中止のいずれかを選択する画面が表示されます。問題なければそのまま確定してEnterキーを押してください。

キー生成の前に、安全なパスフレーズの設定も求められます。推測されにくいパスフレーズを入力してEnterキーを押しましょう。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

キーの生成には多少時間がかかることがあります。処理が完了すると、生成されたキーの情報が表示されます。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

失効証明書の作成(キーの失効)

鍵の紛失や漏洩などの理由でキーを無効化したい場合に備えて、あらかじめ失効証明書を作成しておくと安心です。以下のコマンドで生成できます。

gpg --output revoke.asc --gen-revoke uid

uidの部分には、キーのユーザーID(例:メールアドレス)を指定します。実行時にはパスフレーズの入力が求められ、失効理由を0〜3の番号付きリストから選択します。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

この作業はキー生成直後に行っておくのがおすすめです。失効証明書は「revoke.asc」のようなファイルとして出力されます。万が一のときに備えて、安全な場所に保管しておきましょう。

公開鍵をファイルにエクスポートする

ファイルやメッセージを他の人とやり取りするには、公開鍵を相手に渡す必要があります。公開鍵をファイルとして書き出すには、ターミナルで次のコマンドを実行します。

gpg --armor --export your@emailaccount.com > key.asc

テキストエディタで読める形式(ASCII形式)で書き出したい場合は、こちらのコマンドが便利です。

gpg --armor --output key.txt --export your@emailaccount.com

生成されたkey.txtは、任意の標準テキストエディタで開いて内容を確認できます。

公開鍵をキーサーバーに登録する

公開鍵をキーサーバー(鍵の公開リポジトリ)に登録すれば、相手があなたの鍵を簡単に見つけて取得できるようになります。たとえばMITのキーサーバーを利用すれば、他のキーサーバーとも自動的に同期されます。

まず、ターミナルで次のコマンドを実行して、自分のキーのフィンガープリントを確認します。

gpg --fingerprint

表示された一覧から自分のキーを探し、ユーザーIDの末尾8桁(フィンガープリントの一部)を控えておきます。例:「B852 085C」。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

次に、その8桁のIDを使って以下のコマンドを実行します。「B852085C」の部分は自分のIDに置き換えてください。

gpg --keyserver pgp.mit.edu --send-key B852085C

これで公開鍵がキーサーバーに登録され、誰でも検索・インポートできるようになります。公開鍵は共有しても安全です。公開鍵単体では復号は行えず、あなた宛てのメッセージを暗号化するために使われるだけで、復号できるのは秘密鍵を持つあなただけです。

ファイルの暗号化と復号化

ファイルを暗号化するには、ターミナルで以下のコマンドを実行します。

gpg --encrypt --recipient 'your@emailaccount.com' --output encryptedfile.txt.enc originalfile.txt

--recipientには受信者(自分または相手)のメールアドレスを指定しますが、キーのフィンガープリントでも代用できます。入力ファイル名と出力ファイル名は、実際に扱うファイルに合わせて変更してください。

LinuxでGPGキーを生成する方法!暗号化・公開鍵の共有まで徹底解説

暗号化されたファイルを復号するには、次のコマンドを実行します。

gpg --decrypt --output decrypted.txt encryptedfile.txt.enc

実行するとパスフレーズの入力を求められます。正しく入力すると秘密鍵によるアクセスが許可され、復号された内容が--outputフラグで指定したファイルに出力されます。

GPG暗号化で得られる安心感

理想的な世界であれば、機密ファイルの暗号化を気にする必要はないのかもしれません。しかし現実には、情報漏洩や盗み見のリスクは常に存在します。GPG暗号化を活用すれば、大切なファイルやメッセージ、メールをしっかりと守ることができます。

Windowsユーザーの方は、Gpg4winというツールで同様の暗号化が可能です。独自の暗号化のコツや活用術があれば、ぜひコメント欄でシェアしてください。

  1. GnuPG(GPG)でLinuxソフトウェアのデジタル署名を検証する方法

    インターネットからソフトウェアをダウンロードするとき、開発者が悪意のあるプログラムを配布していないと信頼する必要があります。しかし、それだけでは不十分です。ハッカーの存在も常に意識しなければなりません。攻撃者はWebサイトに侵入し、正規のソフトウェアをバックドア付きのバージョンへ差し替えることで、大きな利益を得られる可能性があります。 例えば、Bitcoinウォレットツールを配布しているサイトを考えてみましょう。攻撃者が正規版を悪意あるものに置き換えることに成功すれば、何万人ものユーザーから金銭を盗み出せるかもしれません。また、オペレーティングシステムもバックドアを仕込む価値のある標的です。

  2. Windows 10 で SSH キーを生成する方法【標準搭載 OpenSSH を活用】

    Windows 環境で SSH キーを生成するには、かつてはサードパーティ製ツールをインストールする必要があり、手順も複雑でした。しかし、Windows 10 April 2018 Update 以降は OpenSSH クライアントが標準で搭載されるようになったため、ssh-keygen コマンドだけで簡単に SSH キーを作成できるようになりました。この記事では、事前確認からキーの生成、実際の接続までの全手順をわかりやすく解説します。 事前準備:OpenSSH クライアントの確認と有効化 まず、お使いの PC に OpenSSH がインストールされていることを確認しましょう。以前のバージョ