LPIC102を学習中にGPGコマンドを初めて知ったので、実際に使用して理解を深めることにした。
環境
[ec2-user@ip-172-31-33-30 ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
鍵ペアの作成
gpg --gen-key
コマンドで以下のように対話形式でキーペアを作成する。
鍵の種類:デフォルトのままにする
鍵長:鍵長は長いほどセキュリティが強いので、最大にしておく。
鍵の有効期間:流出した時に、有効期限を過ぎると無効になるので設定しておく。
[ec2-user@ip-172-31-33-30 ~]$ gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
ご希望の鍵の種類を選択してください:
(1) RSA と RSA (デフォルト)
(2) DSA と Elgamal
(3) DSA (署名のみ)
(4) RSA (署名のみ)
あなたの選択は? 1
RSA 鍵は 1024 から 4096 ビットの長さで可能です。
鍵長は? (2048) 4096
要求された鍵長は4096ビット
鍵の有効期限を指定してください。
0 = 鍵は無期限
<n> = 鍵は n 日間で期限切れ
<n>w = 鍵は n 週間で期限切れ
<n>m = 鍵は n か月間で期限切れ
<n>y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)2y
鍵は2022年05月29日 03時48分32秒 UTCで期限切れとなります
これで正しいですか? (y/N) y
GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。
本名: r_saiki
電子メール・アドレス: r_saiki@example.com
コメント:
次のユーザIDを選択しました:
"r_saiki <r_saiki@example.com>"
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o
秘密鍵を保護するためにパスフレーズがいります。
作成した鍵の確認。
公開鍵の確認オプション:--list-public-keysもしくは-k
秘密鍵の確認オプション:--list-secret-keysもしくは-K
[ec2-user@ip-172-31-33-30 ~]$ gpg --list-public-keys
/home/ec2-user/.gnupg/pubring.gpg
---------------------------------
pub 4096R/0C8FB274 2020-05-29 [有効期限: 2022-05-29]
uid r_saiki <r_saiki@example.com>
sub 4096R/038BE8AA 2020-05-29 [有効期限: 2022-05-29]
[ec2-user@ip-172-31-33-30 ~]$ gpg --list-secret-keys
/home/ec2-user/.gnupg/secring.gpg
---------------------------------
sec 4096R/0C8FB274 2020-05-29 [有効期限: 2022-05-29]
uid r_saiki <r_saiki@example.com>
ssb 4096R/038BE8AA 2020-05-29
ファイルの暗号化
ファイルを暗号化する。
暗号化:--encryptもしくは-e
受取人の公開鍵情報を指定:--recipientもしくは-r <今回はメールアドレス>
[ec2-user@ip-172-31-33-30 ~]$ cat file
TEST
[ec2-user@ip-172-31-33-30 ~]$ gpg --encrypt --recipient r_saiki@example.com file
[ec2-user@ip-172-31-33-30 ~]$ ls
file file.gpg
ファイルの複合
pgpに暗号化ファイル名で複合する。
[ec2-user@ip-172-31-33-30 ~]$ gpg file.gpg
次のユーザの秘密鍵のロックを解除するには
パスフレーズがいります:"r_saiki <r_saiki@example.com>"
4096ビットRSA鍵, ID 038BE8AA作成日付は2020-05-29 (主鍵ID 0C8FB274)
gpg: 4096-ビットRSA鍵, ID 038BE8AA, 日付2020-05-29に暗号化されました
"r_saiki <r_saiki@example.com>"
ファイル「file」は既に存在します。上書きしますか? (y/N) y
[ec2-user@ip-172-31-33-30 ~]$ cat file
TEST
終わりに
今回はファイルの暗号化・復号のみやってみた。深堀するとlpic受験前に息切れしそうなので、詳しく知りたい場合は以下を参考。
GPG でファイルを暗号化, 復号化, 署名, 検証する方法