情報漏洩や改ざんのリスクを防ぐうえで、暗号化技術は欠かせません。この記事では、Linux環境でよく使われる公開鍵暗号方式・SSH・GnuPG(GPG)の基礎と活用法をわかりやすく解説します。
目次
1. 公開鍵暗号とは?
公開鍵と秘密鍵のペア
公開鍵暗号方式は、以下の2つの鍵を利用します。
| 鍵の種類 | 役割 |
|---|---|
| 公開鍵 | 他人に渡しても安全な鍵 |
| 秘密鍵 | 自分だけが保管すべき鍵 |
- 公開鍵で暗号化 → 秘密鍵で復号
- 秘密鍵で署名 → 公開鍵で検証
この仕組みにより、安全な通信・認証・署名が可能になります。
2. OpenSSHの鍵認証と設定方法
LinuxではSSH(Secure Shell)を使ってリモート接続が可能です。
鍵ペアの作成:ssh-keygen
ssh-keygen -t ed25519
-tは鍵のタイプ(rsa,ecdsa,ed25519が選べます)~/.ssh/id_ed25519:秘密鍵~/.ssh/id_ed25519.pub:公開鍵
公開鍵をサーバに配置
ssh-copy-id user@remote_host
または手動で:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
エージェントに鍵を登録:ssh-agent, ssh-add
eval "$(ssh-agent)"
ssh-add ~/.ssh/id_ed25519
3. SSHポート転送(トンネリング)
安全な経路で他の通信を通したい場合に、SSHポート転送が使えます。
ローカルポートフォワーディング
ssh -L 8080:localhost:80 user@remote_host
localhost:8080にアクセスすると、リモートのlocalhost:80に接続されます。
リバースポートフォワーディング
ssh -R 2222:localhost:22 user@remote_host
- リモート側の
2222番ポートが、ローカルの22に転送されます。
4. GnuPG(GPG)によるデータの暗号化
GPGは、電子メールの署名・暗号化やファイルの保護に使用されるツールです。
鍵の作成
gpg --full-generate-key
- 名前やメールアドレスを入力
~/.gnupg/に鍵と設定が保存されます
公開鍵のエクスポート
gpg --armor --export your@email.com
暗号化と復号化
# 暗号化
gpg -e -r recipient@email.com file.txt
# 復号化
gpg -d file.txt.gpg
署名と検証
# 署名付きファイルを作成
gpg -s file.txt
# 署名の検証
gpg --verify file.txt.gpg
5. 主な暗号化アルゴリズムと特徴
| アルゴリズム | 特徴 |
|---|---|
| RSA | 広く使われる。鍵サイズは大きいが安定。 |
| ECDSA | 楕円曲線暗号。高速・軽量。 |
| ED25519 | 高速・セキュア。近年の推奨方式。 |
SSHやGPGのデフォルトとしてed25519が主流になりつつあります。
6. まとめ:暗号化はLinuxセキュリティの基本
暗号化は、Linuxシステムのセキュリティを守る第一の壁です。
| 対応項目 | ツール・コマンド例 |
|---|---|
| リモート接続の暗号化 | ssh, ssh-keygen |
| データ・メールの暗号化 | gpg |
| 安全なポート転送 | ssh -L, ssh -R |
| 鍵管理 | ssh-agent, gpg-agent |

コメント