目次
OpenSSHとOpenSSLの違いのまとめ
| 主な用途 | 使うプロトコル | 他アプリへの組み込み | |
|---|---|---|---|
| OpenSSH | リモート接続ツール | SSH | ほぼなし |
| OpenSSL | 暗号化ライブラリ | SSL/TLS | 非常に多い |
OpenSSH は接続するためのツール、OpenSSLは暗号化するためのライブラリです。
OpenSSHとは
Open Secure Shell
OpenSSHは、ネットワーク越しに別のコンピューターを安全に操作するためのプログラムです。
例
ターミナルからサーバーにログインしたい、GitHubにSSH鍵で繋ぎたい → OpenSSH を使う
| ログイン | 離れた場所にあるLinuxサーバーなどにコマンドラインで入る際に使います(ssh コマンド)。 |
| ファイル転送 | scpやsftpといったコマンドで、暗号化された安全なファイル送受信を実現します。 |
| 鍵認証 | 秘密鍵と公開鍵を使ってパスワードなしでログインする仕組みを提供します。 |
OpenSSH は内部的に暗号化処理に OpenSSL(または LibreSSL)を利用している場合があります。
ただし近年のOpenSSHは独自の暗号実装に移行しつつあり、依存度は下がっています。
OpenSSHのデーモン
デーモンはあります。sshdです。
サーバー側でSSH接続を待ち受けるデーモンです。
# デーモンの起動・停止・状態確認
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl status sshd
# 設定ファイル
/etc/ssh/sshd_config
使用例(クライアント側)
# リモートサーバーにログイン
ssh user@192.168.1.10
# 秘密鍵を指定してログイン
ssh -i ~/.ssh/id_rsa user@example.com
# ファイルをコピー(scp)
scp localfile.txt user@example.com:/home/user/
# ポートフォワーディング(ローカル8080→リモート80)
ssh -L 8080:localhost:80 user@example.com
設定ファイル:/etc/ssh/sshd_config
待ち受けポート22番
OpenSSLとは
Open Secure Sockets Layer
OpenSSLは、インターネット上でデータを安全にやり取りするための暗号技術の詰め合わせパックです。
例
WebサイトにSSL証明書を入れたい、CSRを作りたい→ OpenSSL を使う
| 証明書の作成 | PKIのCSRの作成や自己署名証明書(オレオレ証明書)の発行には、このopensslコマンドを使います。 |
| SSL/TLSの提供 | Webサーバー(NginxやApache)がHTTPS通信を行うために、裏側でこのOpenSSLの機能を利用しています。 |
| 汎用的な暗号化 | ファイルを特定のアルゴリズム(AESなど)で暗号化・復号する際にも使われます。 |
OpenSSLのデーモン
デーモンはありません。
OpenSSLはデーモンではなくライブラリ+CLIツールです。他のアプリ(Apache、Nginxなど)がライブラリとして組み込んで使います。
使用例(コマンドライン)
# 秘密鍵の生成
openssl genrsa -out private.key 2048
# CSR(証明書署名要求)の作成
openssl req -new -key private.key -out request.csr
# 自己署名証明書の作成
openssl req -x509 -key private.key -in request.csr -out cert.crt -days 365
# 証明書の内容確認
openssl x509 -in cert.crt -text -noout
# サーバーのTLS証明書を確認
openssl s_client -connect example.com:443
# ファイルをAES-256で暗号化
openssl enc -aes-256-cbc -in file.txt -out file.enc
# 復号
openssl enc -d -aes-256-cbc -in file.enc -out file.txt
関連の記事
