はじめに
本記事では、SSL(Secure Sockets Layer、一般にはTLSと呼ばれます)とSSH(Secure Shell)の違いをやさしく丁寧に解説します。両者はどちらも通信を安全にする仕組みですが、用途や仕組み、認証方法が異なります。これらを正しく理解することで、適切な場面で適切な技術を選べるようになります。
目的
- SSL/TLSとSSHの基本的な違いを分かりやすく伝えます。
- どの場面でどちらを使うべきか判断できるようにします。
対象読者
- システム管理やウェブ運営に携わる方
- セキュリティ選定で迷っている方
- 技術用語に不安がある初級〜中級者
本記事の構成
各章で用途、仕組み、認証、ポートや具体的な使い分けを順に説明します。身近な例(ウェブサイトのログイン、リモート操作など)を使って、専門用語は最小限にして進めます。読んでいくうちに、どちらを使うべきか自然に分かるように配慮しています。
SSLとSSHの基本概要
SSL/TLSとは
SSLは古い名前で、現在はTLS(Transport Layer Security)が使われます。主にウェブサイト(HTTPS)やメールなどで、ブラウザとサーバ間の通信を暗号化します。第三者による盗聴や通信の改ざんを防ぎ、サイトの身元を証明するために「証明書」を使います。例えば、オンラインショッピングでカード情報を送るときに役立ちます。
SSHとは
SSH(Secure Shell)はリモートサーバへの安全な接続を目的とします。サーバにログインしてコマンドを実行したり、ファイルを安全に転送したりする場面で使います。パスワードの代わりに公開鍵という仕組みで認証することが多く、サーバ管理や開発作業で重宝します。
共通点と大きな違い
両者とも通信を暗号化し安全性を高めますが、用途が異なります。SSL/TLSは主にアプリケーション間の通信保護(例:ブラウザ⇄ウェブ)、SSHは人がサーバへ直接操作するための安全な接続(例:遠隔操作、ファイル転送)に使います。設計の目的が違うため、使い分けが重要です。
用途・利用シーンの違い
概要
SSL/TLSとSSHはどちらも通信を安全にしますが、使う場面が異なります。ここでは具体例を挙げながら、どのような状況で使われるかをわかりやすく説明します。
SSL/TLSの主な利用シーン
- Webサイト(HTTPS):ブラウザで見る普通のサイトの暗号化です。ログイン情報やクレジットカード番号を守ります。
- メール(SMTP over SSLなど):メールの送受信経路を暗号化して盗み見を防ぎます。
- ファイル転送(FTPSなど):既存のファイル転送プロトコルに暗号化を追加した例です。
利用者は一般のWebサービス利用者やメールユーザーが中心です。サービス提供者側で証明書を導入して通信を暗号化します。
SSHの主な利用シーン
- リモートサーバ管理(sshコマンド):サーバへログインして操作する際に使います。
- ファイル転送(SCP/SFTP):管理者や開発者が安全にファイルをやり取りするときに用います。
利用者はサーバ管理者や開発者が中心で、個別の公開鍵やパスワードで接続を管理します。
利用者と目的の違い(簡単な見分け方)
- 一般のユーザーがウェブ閲覧やオンラインショッピングを安全にしたいときはSSL/TLS(HTTPS)を確認します。
- サーバにログインしたり開発作業をしたいときはSSHを使います。
具体例
- 普段使うネットショップやSNS:SSL/TLS(ブラウザの鍵アイコンを確認)。
- サーバ設定やデプロイ作業:SSHで接続してコマンド操作やSCPでファイル転送。
必要に応じてどちらを使うか明確に分けると、運用が簡単になります。
認証方式の違い
サーバ認証(SSL/TLS)
SSL/TLSではサーバが「証明書」を提示して自分を証明します。証明書は認証局(CA)が発行し、ブラウザやクライアントは証明書の発行元と有効期限、接続先のドメイン名が一致するかを確認します。普段見る「鍵マーク」はこの仕組みによるものです。証明書は第三者の信頼を前提にしている点が特徴です。
クライアント認証(SSL/TLSのオプション)
必要があればクライアント側も証明書を使って自分を証明できます。銀行の専用端末や企業内システムで使われることが多く、パスワードより強い認証手段になります。
SSHの認証方式
SSHは主に「パスワード認証」と「公開鍵認証」を使います。公開鍵認証では、ユーザーが秘密鍵を手元で保管し、サーバには対応する公開鍵を置きます。接続時に鍵の一致で本人確認します。秘密鍵はパスフレーズで保護することが推奨されます。
比較と実例
- 信頼の担保:SSL/TLSはCAによる第三者確認が中心。SSHは接続する側が公開鍵を登録して直接信頼関係を作ります。
- セキュリティ:公開鍵認証はパスワードより破られにくく、安全性が高いです。
- 運用面:多人数での管理や証明書の有効期限管理はSSL/TLSが向きます。サーバアクセスの個別管理はSSHの公開鍵方式が便利です。
実務では用途に応じて両者の仕組みを使い分けます。
通信の仕組みの違い
概要
通信を安全にするために、どちらも最初に鍵交換を行い暗号化されたチャネルを作ります。ただし手順や用途に応じた仕組みの違いがあります。具体例を交えて分かりやすく説明します。
SSL/TLSの仕組み(例:HTTPS)
- ハンドシェイク開始:クライアント(ブラウザ)が接続を始めます。
- サーバ証明書提示:サーバが証明書を送り、正当性を示します。
- 鍵交換:クライアントとサーバが鍵交換プロトコルで共通のセッション鍵を作ります。現代では一時鍵(エフェメラル鍵)を使うことが多く、これにより通信の将来の解析に備えた安全性(前方秘匿性)が高まります。
- 暗号化通信開始:共通鍵で対称暗号を使い高速にデータを暗号化し、MACなどで改ざん検知を行います。
SSHの仕組み(例:リモートログイン、SCP)
- 接続とホスト鍵確認:クライアントがサーバに接続し、サーバのホスト鍵を受け取って確認します(初回は警告が出ます)。
- 鍵交換:Diffie-Hellmanなどでセッション鍵を生成します。ここでもエフェメラル鍵で前方秘匿性を確保することが一般的です。
- 認証とチャネル確立:ユーザ認証(パスワード、公開鍵など)を行い、複数の論理チャネル(シェル、ポート転送、ファイル転送)を暗号化チャネル上に作ります。
主な違い(ポイント)
- 認証の手順や目的が異なります。SSL/TLSはサーバ証明書で「サーバの身元」を示し、SSHはホスト鍵とユーザ認証で「接続と操作の安全」を重視します。
- SSHは一つの接続で複数のサービス(シェルや転送)を扱えますが、SSL/TLSは個々の接続(例:HTTPSのリクエスト)で暗号化を行います。
- 両者とも再鍵(rekey)で長時間接続の安全を保ちますが、用途に合わせた実装やデフォルト設定が異なります。
例:ウェブ閲覧ではTLSでページを安全に受け取り、サーバ管理やファイル転送はSSHで安全に操作します。
使用するポート番号・プロトコルの違い
概要
SSL/TLS(以下、TLS)は用途ごとに異なるポート番号で使われます。たとえばWebはHTTPSで443番、メールはSMTPSで465番やIMAPSで993番などです。SSHは標準で22番ポートを使い、独自のSSHプロトコルで通信します。
主なポートと具体例
- HTTPS(TLS): 443番(例:ブラウザで安全にWebサイトを見る)
- HTTP(平文): 80番(暗号化なし)
- SMTP over TLS(SMTPS): 465番、または587番(STARTTLSを使う)
- IMAP over TLS: 993番(メールの受信)
- POP3 over TLS: 995番
- SSH: 22番(リモートログインやファイル転送)
プロトコルの違い(簡単に)
TLSはTCP上に乗ってアプリケーションごとのプロトコルを保護します。別の伝送方式としてUDP向けのDTLSや、HTTP/3で使われるQUIC(UDP上でTLS相当の仕組み)もあります。SSHはそもそも暗号化や認証を含む独立したプロトコルで、接続後に複数のチャネル(端末操作やファイル転送)を扱います。
実務上の注意点
ポートは変更可能ですが、単に番号を変えても安全性は高まりません。ファイアウォール設定やルータのNAT、サービスの起動ポートを確認してください。証明書や鍵の管理が正しくないと、正しく暗号化されても安全が保てません。
(章の途中の説明です。まとめは含めていません。)
利用シーン・使い分けのポイント
基本的な使い分けの考え方
Webブラウザやメールなど、一般利用者とやり取りする通信はSSL/TLS(例:HTTPS)を使います。サーバの管理作業やリモートログイン、サーバ間での安全なファイル転送はSSH(例:SCP、SFTP)が適しています。目的に応じて使い分けると安全で運用が楽になります。
日常的な例と推奨
- Webサイト表示やAPI提供:HTTPS(SSL/TLS)を常に有効にします。ブラウザやスマホの接続を守れます。
- メール配送:メールサーバ間の暗号化にはTLSを使います。ユーザーとメールクライアント間もTLSを有効にします。
- サーバ管理・ターミナル操作:SSHでリモートログインします。公開鍵認証で運用すると安全です。
- ファイル転送:公開鍵でSFTP/SCPを使います。FTPは使わないでください。
運用のポイント(実務での注意)
- Web向けは証明書の自動更新を設定します。期限切れは避けるべきです。
- SSH鍵は厳重に管理し、不要な鍵は削除します。パスフレーズを付けると安全性が上がります。
- サービス間通信で相互認証が必要なら、mTLS(双方向TLS)を検討します。
判断のチェックリスト
- 対象は一般ユーザーか管理者か? 一般ユーザー→TLS/HTTPS、管理者→SSH
- ブラウザやメールクライアントで利用されるか? はい→TLS
- リモートでコマンド実行やシェル操作が必要か? はい→SSH
- ファイル操作のみでGUI不要か? SFTP/SCP(SSH)が便利です。
よくある混同ポイントと注意点
両者とも通信を暗号化しますが、目的と扱う範囲が違います。ここでは多くの人が混同しやすい点と現場での注意点を具体例を交えて説明します。
よくある混同ポイント
- 暗号化は同じだが用途が違う:HTTPS(SSL/TLS)はブラウザとサーバー間の通信保護、SSHはリモート操作や管理用の安全な接続です。例:WebサイトはTLS、サーバー管理やgitのpushはSSH。
- 認証方式の混同:TLSは証明書(CAの署名)でサーバーを裏付けることが多く、SSHは公開鍵とknown_hostsでホストを確認します。
- プロトコル名の混乱:SSLという言い方が残りますが、実際はTLSが現行の標準です。
- 機能の重なり:SFTPはSSH上で動き、FTPSはTLSで動くため用途や設定方法が異なります。
運用上の注意点
- 証明書と鍵の管理を分ける:公開向けサイトはCA署名の証明書を使い、内部サービスは管理しやすい仕組みを整えます。
- ホスト鍵の検証を怠らない:初回確認やknown_hostsの管理を行い、なりすましを防ぎます。
- パスワード認証を避ける:SSHは公開鍵認証を使い、必要なら多要素を追加します。
- プロトコルや暗号の更新:TLSは1.2/1.3を使い、古い暗号は無効にします。
- キーの使い回しをしない:同じ鍵を複数サービスで使うと被害が大きくなります。
設計段階で「何を守りたいか」を明確にし、それぞれに合った認証と運用ルールを決めることが重要です。
まとめ表:SSL/TLSとSSHの違い
以下はSSL/TLSとSSHの主な違いを分かりやすくまとめた表です。具体例を添えて簡潔に説明します。
| 項目 | SSL/TLS | SSH |
|---|---|---|
| 主な用途 | Webやメールなどの通信を暗号化(例: HTTPS, SMTPS) | サーバ管理・リモート操作・安全なファイル転送(例: ssh, scp, sftp) |
| 認証方式 | 証明書(CA発行)でサーバ認証。必要に応じてクライアント証明書も使用 | パスワードまたは公開鍵認証。公開鍵方式が一般的 |
| ポート番号 | 443(HTTPS)など、上位プロトコルで動作 | 22(SSH) |
| 層・仕組み | TCP上でTLSハンドシェイクを行い、アプリケーションの通信を保護 | 独自プロトコルでセッションを確立し、コマンドや転送を暗号化 |
| 利用者 | 一般ユーザーやアプリケーション | 管理者・開発者 |
| 代表的機能 | ブラウザ通信の暗号化、中間者攻撃対策 | リモートシェル、ファイル転送、ポートフォワード |
| 備考 | HTTPやSMTPなど既存プロトコルを安全にする用途に適する | サーバ管理やトンネル用途に適し、認証と操作を一体で提供 |
使い分けの目安:Webやメールなどの普段の通信はSSL/TLSを使い、リモート操作や安全なファイル転送はSSHを選ぶとわかりやすいです。どちらも安全に使うために、証明書や鍵の適切な管理と最新の設定を心がけてください。
参考・関連用語
HTTPS
HTTPにSSL/TLSを組み合わせた通信です。Webサイトで使われ、アドレスバーに鍵マークが付きます。例:ブラウザから銀行サイトに接続するとき。
SFTP / SCP
どちらもSSHを利用するファイル転送方式です。SFTPはディレクトリ操作など機能が豊富で、人間が使うファイル転送に向きます。SCPは単純にファイルをコピーする用途で軽量です。
FTPS
FTPにSSL/TLSを追加した方式です。既存のFTP環境を安全にするために使われますが、パッシブ/アクティブの設定が複雑になる場合があります。
TLS / 証明書・PKI
TLSは通信を暗号化する仕組みです。公開鍵証明書(CA発行)でサーバーの正当性を確認します。証明書は有効期限があり、更新が必要です。
ホスト鍵とknown_hosts
SSHではサーバーごとのホスト鍵を持ち、初回接続時に確認します。正しく管理すると中間者攻撃を防げます。
実装例と運用ポイント
OpenSSL / OpenSSH / vsftpdなどのツールが代表です。鍵や証明書の管理、定期的な更新、ログ監視を必ず行ってください。用途に合わせて使い分けることで安全なシステム運用につながります。












