IT業界で働き始めると、「SSH」と「SSL/TLS」という用語をよく耳にします。どちらも暗号化通信に関わる技術ですが、その目的や仕組みは大きく異なります。
この記事では、SSHとSSL/TLSの違いを初心者にもわかりやすく解説します。それぞれの仕組み、用途、ポート番号、認証方式まで、比較表を使って徹底的に整理します。
SSHとは?
SSH(Secure Shell)は、ネットワークを通じてリモートコンピュータに安全にログイン・操作するためのプロトコルです。主にサーバー管理やファイル転送で利用されます。
SSHが登場する前は、Telnetやrloginといったプロトコルがリモートアクセスに使われていましたが、これらは通信内容が暗号化されず平文で送信されるため、盗聴のリスクがありました。SSHはこの問題を解決するために開発されました。
SSHの主な特徴
- リモートシェルアクセス:サーバーにコマンドラインで安全に接続
- ポート番号:デフォルトで22番ポートを使用
- 認証方式:パスワード認証、公開鍵認証、多要素認証に対応
- トンネリング機能:他の通信をSSH経由で暗号化するポートフォワーディングが可能
- ファイル転送:SCP(Secure Copy)やSFTP(SSH File Transfer Protocol)によるセキュアなファイル転送
SSHの具体的な使用例
- AWSやGCPなどのクラウドサーバーへのリモート接続
- Linuxサーバーの管理・メンテナンス
- GitHubへのSSH鍵を使ったpush/pull
- 本番環境でのデバッグやログ確認
SSL/TLSとは?
SSL(Secure Sockets Layer)/ TLS(Transport Layer Security)は、インターネット上の通信を暗号化し、データの安全なやり取りを保証するプロトコルです。主にWebブラウザとWebサーバー間の通信で使われます。
厳密にはSSLはTLSの前身であり、現在使われているのはほとんどがTLSです。しかし歴史的な経緯から「SSL」という名称が広く使われ続けており、「SSL/TLS」や「SSL証明書」という表現が一般的です。
SSL/TLSの主な特徴
- Web通信の暗号化:HTTPSの基盤技術として、ブラウザとサーバー間の通信を保護
- ポート番号:HTTPSではデフォルトで443番ポートを使用
- 認証方式:SSL/TLS証明書(CA認証局が発行)によるサーバー認証
- ハンドシェイク:接続時に暗号化方式の合意と鍵交換を実施
- 幅広い対応:Web以外にもメール(SMTPS)、FTP(FTPS)など多くのプロトコルに対応
SSL/TLSの具体的な使用例
- ECサイトでのクレジットカード情報の送信(HTTPS通信)
- Webサイト全体のHTTPS化(常時SSL)
- メールサーバーの暗号化通信(SMTPS、IMAPS)
- API通信のセキュリティ確保
SSHとSSL/TLSの違いを比較表で整理
両者の主な違いを表でまとめました。
| 比較項目 | SSH | SSL/TLS |
|---|---|---|
| 主な目的 | リモートサーバーへの安全なアクセス・操作 | Web通信やデータ転送の暗号化 |
| 使用場面 | サーバー管理、ファイル転送 | Webサイト閲覧、API通信、メール |
| デフォルトポート | 22 | 443(HTTPS) |
| 認証方式 | パスワード、公開鍵、多要素認証 | SSL/TLS証明書(CA発行) |
| 通信の対象 | ユーザーとサーバー間のシェルセッション | クライアント(ブラウザ等)とサーバー間のデータ通信 |
| 暗号化レイヤー | アプリケーション層で独自に暗号化 | トランスポート層とアプリケーション層の間 |
| 代表的なツール | OpenSSH、PuTTY、Tera Term | Let’s Encrypt、OpenSSL |
| ファイル転送 | SCP、SFTP | FTPS |
SSHとSSL/TLSの暗号化の仕組みの違い
SSHとSSL/TLSはどちらも公開鍵暗号を利用しますが、その使い方に違いがあります。
SSHの暗号化プロセス
- クライアントがサーバーに接続を要求
- サーバーが公開鍵を送信し、クライアントが検証(初回接続時はフィンガープリントを確認)
- 共通のセッション鍵を生成(Diffie-Hellman鍵交換など)
- ユーザー認証(公開鍵認証またはパスワード認証)
- 暗号化されたセッションが確立し、コマンド操作が可能に
SSL/TLSの暗号化プロセス(TLSハンドシェイク)
- クライアント(ブラウザ)がサーバーに接続を要求(ClientHello)
- サーバーがSSL/TLS証明書と公開鍵を送信(ServerHello)
- クライアントが証明書をCA(認証局)で検証
- セッション鍵を共有鍵暗号方式で生成
- 暗号化通信が開始
最も大きな違いは、SSHがユーザー個人の認証(誰がアクセスしているか)に重点を置くのに対し、SSL/TLSはサーバーの正当性の証明(接続先が本物かどうか)に重点を置いている点です。
SSHとSSL/TLSはどう使い分ける?
SSHとSSL/TLSは競合する技術ではなく、目的に応じて使い分けるものです。場面ごとの適切な選択を紹介します。
SSHを使うべき場面
- リモートサーバーにログインして管理作業を行いたいとき
- 安全にファイルをサーバーへ転送したいとき(SCP/SFTP)
- GitHubやGitLabにSSH鍵で接続したいとき
- ポートフォワーディングで社内サービスに安全にアクセスしたいとき
SSL/TLSを使うべき場面
- Webサイトの通信をHTTPSで暗号化したいとき
- ECサイトやログインフォームで個人情報を保護したいとき
- REST APIやWebhookの通信を安全に行いたいとき
- メールの送受信を暗号化したいとき
よくある誤解と注意点
誤解1:「SSLはまだ現役」
SSL 3.0は2015年に正式に非推奨となり、現在のセキュアな通信はすべてTLS 1.2以上が推奨されています。2026年現在ではTLS 1.3が主流です。「SSL証明書」という名称は慣習的に残っていますが、実際にはTLS証明書です。
誤解2:「SSHとSSLは同じ暗号化技術」
どちらも公開鍵暗号を使いますが、プロトコルとしてはまったく別物です。SSHはリモートアクセスのための独自プロトコル、SSL/TLSは汎用的なトランスポート層の暗号化プロトコルです。
誤解3:「HTTPSならSSHは不要」
HTTPSはWebの通信を守るものであり、サーバー管理には使えません。サーバーにリモートログインするには、別途SSHが必要です。両者は補完関係にある技術です。
まとめ
SSHとSSL/TLSは、どちらもインターネット上の通信を安全にするための重要な技術ですが、目的と使い方がまったく異なります。
- SSH:リモートサーバーに安全にログイン・操作するためのプロトコル(ポート22)
- SSL/TLS:Webなどの通信を暗号化し、データの安全性と正当性を保証するプロトコル(ポート443)
IT業界では両方の技術を日常的に使うため、それぞれの役割と違いを正しく理解しておくことが大切です。セキュリティの基礎を固めて、安全なシステム構築を目指しましょう。
プログラミングを本格的に学びたい方へ
この記事で紹介した技術をより深く学びたい方には、実践的なカリキュラムで学べるプログラミングスクールがおすすめです。

コメント