OpenSSHとOpenSSLの違い

目次

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

関連の記事

Linux OpenSSHサーバの設定ファイル(sshd_config)

△上に戻る