「サーバーにSSHで接続してください」
エンジニアやWeb制作の仕事をしていると、こんな言葉を聞くことがあります。でも、SSHって一体何なのでしょうか?
簡単に言うと、SSHは離れた場所にあるコンピューターを安全に操作するための技術です。
家にいながら会社のサーバーを操作したり、日本から海外のサーバーを管理したり。まるで目の前にそのコンピューターがあるかのように使えるんです。しかも、安全に。
この記事では、SSHの基本から実際の使い方、セキュリティのポイントまで、順番に分かりやすく説明していきます。
SSHの正式名称と読み方

名前の由来
SSHは「Secure Shell(セキュアシェル)」の略です。
読み方は「エスエスエイチ」です。
それぞれの単語の意味:
- Secure(セキュア):安全な、セキュリティが確保された
- Shell(シェル):コンピューターと対話するためのプログラム
つまり、「安全な対話プログラム」という意味になります。
なぜ「Shell」なの?
コンピューター用語で「シェル」は、OSの中核(カーネル)を包む「殻」のような存在です。
卵に例えると:
- 黄身:カーネル(OSの中核)
- 白身:各種プログラム
- 殻:シェル(ユーザーとOSをつなぐ)
ユーザーはシェルを通じて、コンピューターに命令を送るんです。
SSHが生まれた理由
インターネット初期の問題
1990年代前半、インターネットが普及し始めた頃、リモート接続には「Telnet(テルネット)」や「rlogin」が使われていました。
でも、これらには致命的な欠点がありました。
パスワードが丸見え!
当時の通信は暗号化されていなかったので、悪意のある人が通信を盗み見ると、パスワードや重要な情報が全部バレてしまったんです。
SSHの誕生
1995年、フィンランドのヘルシンキ工科大学の研究者、タトゥ・ユレーネン氏がSSHを開発しました。
きっかけは、大学のネットワークがパスワード盗聴の被害に遭ったこと。「もう二度とこんなことが起きないように」という思いから、SSHが生まれたのです。
SSHの仕組みを分かりやすく
暗号化通信の基本
SSHの最大の特徴は、すべての通信が暗号化されることです。
普通の手紙とSSHの違い:
普通の手紙(Telnet):
- メッセージをそのまま封筒に入れる
- 配達員が中身を読める
- 途中で書き換えられる可能性も
SSHの手紙:
- メッセージを暗号化して金庫に入れる
- 鍵を持っている人だけが開けられる
- 改ざんされたらすぐ分かる
接続の流れ
SSHで接続するときの流れを、ホテルのチェックインに例えてみましょう。
- ノック(接続要求)
- 「接続したいです」とサーバーに伝える
- 身分証明書の確認(サーバー認証)
- サーバーが本物か確認
- 偽物のサーバーでないかチェック
- 宿泊者の確認(ユーザー認証)
- パスワードまたは鍵で本人確認
- 正しいユーザーか判定
- 部屋の鍵をもらう(セッション確立)
- 安全な通信路が確立
- これ以降の通信はすべて暗号化
SSHでできること
1. リモートコマンド実行
離れたサーバーで命令を実行できます。
例えば:
- ファイルの作成や削除
- プログラムの実行
- システムの設定変更
- ログの確認
まるで、そのコンピューターの前に座っているかのように操作できるんです。
2. ファイル転送(SCP/SFTP)
SSHの技術を使って、安全にファイルを送受信できます。
SCP(Secure Copy):
- 簡単なファイルコピー
- コマンド一つで転送
SFTP(SSH File Transfer Protocol):
- より高機能なファイル転送
- 対話的な操作が可能
- 転送の中断・再開もできる
3. ポートフォワーディング(トンネリング)
難しそうな名前ですが、要は「安全な通り道を作る」機能です。
例:自宅から会社の内部システムにアクセス
- SSHで会社のサーバーに接続
- そのサーバー経由で内部システムにアクセス
- まるで会社にいるかのように使える
4. X11フォワーディング
LinuxのGUIアプリケーションを、リモートで表示できます。
サーバーで動いているアプリの画面を、自分のパソコンに表示させる技術です。
SSHの認証方法

パスワード認証
一番シンプルな方法です。
メリット:
- 設定が簡単
- どこからでもアクセス可能
デメリット:
- パスワードが漏れるリスク
- 総当たり攻撃を受ける可能性
- 毎回入力が面倒
公開鍵認証
より安全な認証方法です。
仕組みを家の鍵に例えると:
- 鍵のペアを作る
- 公開鍵(鍵穴)
- 秘密鍵(鍵)
- サーバーに鍵穴を設置
- 公開鍵をサーバーに登録
- 鍵で開ける
- 秘密鍵を使って接続
- 鍵を持っている人だけが入れる
メリット:
- パスワードより安全
- 自動ログインが可能
- 秘密鍵にパスフレーズで二重の保護
デメリット:
- 初期設定がやや複雑
- 秘密鍵の管理が必要
実際にSSHを使ってみよう

Windows での使い方
方法1:PowerShell/コマンドプロンプト
Windows 10以降なら、標準で使えます!
ssh ユーザー名@サーバーのアドレス
例:
ssh tanaka@192.168.1.100
方法2:専用ソフトを使う
PuTTY(パティ)
- 無料の定番ソフト
- 日本語版もある
- 細かい設定が可能
Tera Term(テラターム)
- 日本製のソフト
- 使いやすい
- マクロ機能が便利
Mac/Linux での使い方
ターミナルを開いて、そのまま使えます。
ssh ユーザー名@サーバーのアドレス
初回接続時の確認:
The authenticity of host 'example.com' can't be established.
RSA key fingerprint is SHA256:xxxxx...
Are you sure you want to continue connecting (yes/no)?
これは「このサーバーに初めて接続するけど、信頼していい?」という確認です。「yes」と入力して進みます。
便利な使い方
SSHの設定ファイル
よく使うサーバーは、設定ファイルに登録しておくと便利です。
~/.ssh/config
ファイルに記載:
Host myserver
HostName 192.168.1.100
User tanaka
Port 22
これで、簡単に接続できます:
ssh myserver
接続を維持する設定
接続が切れやすい場合の対策:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
60秒ごとに生存確認を送り、接続を維持します。
SSHキーの作り方
基本的な手順
- キーペアの生成
ssh-keygen -t rsa -b 4096
質問に答えていきます:
- 保存場所(通常はEnterでOK)
- パスフレーズ(追加のパスワード)
- 公開鍵をサーバーに登録
ssh-copy-id ユーザー名@サーバーアドレス
手動で登録する場合:
- 公開鍵の内容をコピー
- サーバーの
~/.ssh/authorized_keys
に追加 - 接続テスト
ssh ユーザー名@サーバーアドレス
パスワードなしで入れれば成功!
キーの種類と強度
RSA(アールエスエー):
- 最も一般的
- 2048ビット以上推奨
- 互換性が高い
Ed25519(エドワーズ25519):
- 新しい方式
- より安全で高速
- 短いキーで高セキュリティ
ssh-keygen -t ed25519
セキュリティを高める設定

サーバー側の設定
1. ルートログインの禁止
/etc/ssh/sshd_config
を編集:
PermitRootLogin no
管理者権限での直接ログインを防ぎます。
2. パスワード認証の無効化
公開鍵認証のみにする:
PasswordAuthentication no
3. ポート番号の変更
デフォルトの22番から変更:
Port 2222
単純ですが、自動攻撃を大幅に減らせます。
クライアント側の対策
秘密鍵の保護
- 適切な権限設定
chmod 600 ~/.ssh/id_rsa
- パスフレーズの設定
- 秘密鍵に追加のパスワード
- 万が一盗まれても使えない
- 定期的な鍵の更新
- 年に1回程度は新しい鍵に
よくあるトラブルと解決法
接続できない!
原因1:サーバーが起動していない
確認方法:
ping サーバーアドレス
原因2:ファイアウォールでブロック
- ポート22(またはSSHポート)が開いているか確認
- セキュリティグループの設定を確認(クラウドの場合)
原因3:認証の失敗
- ユーザー名が正しいか
- パスワードが正しいか
- 公開鍵が登録されているか
Permission denied エラー
権限の問題
# ホームディレクトリ
chmod 755 ~
# .sshディレクトリ
chmod 700 ~/.ssh
# authorized_keys
chmod 600 ~/.ssh/authorized_keys
接続が遅い
DNS逆引きの無効化
サーバー側の設定:
UseDNS no
不要な認証方法の無効化
GSSAPIAuthentication no
SSHの応用技術
多段SSH(踏み台サーバー経由)
セキュリティのため、直接アクセスできないサーバーへの接続:
ssh -J 踏み台サーバー 目的のサーバー
設定ファイルでの記述:
Host target-server
HostName 10.0.0.100
ProxyJump bastion-server
SSHトンネル
ローカルフォワード
リモートのサービスをローカルで使う:
ssh -L 8080:localhost:80 サーバー
ブラウザで http://localhost:8080
にアクセスすると、サーバーの80番ポートに繋がります。
リモートフォワード
ローカルのサービスをリモートで公開:
ssh -R 8080:localhost:3000 サーバー
SSHエージェント
秘密鍵のパスフレーズを一度だけ入力:
# エージェント起動
eval $(ssh-agent)
# 鍵を追加
ssh-add ~/.ssh/id_rsa
これで、セッション中はパスフレーズ不要に。
クラウド時代のSSH

AWS(Amazon Web Services)
EC2インスタンスへの接続:
ssh -i keypair.pem ec2-user@サーバーアドレス
特徴:
- インスタンス作成時にキーペアを選択
- pemファイルで認証
Google Cloud Platform
gcloud compute ssh インスタンス名
gcloudコマンドが鍵の管理もしてくれます。
Azure
ssh -i ~/.ssh/id_rsa azureuser@サーバーアドレス
モバイルからのSSH
iOS アプリ
Termius:
- 使いやすいUI
- 複数サーバー管理
- 同期機能あり
Prompt:
- 高機能
- タッチ操作に最適化
Android アプリ
JuiceSSH:
- 無料で高機能
- プラグイン対応
ConnectBot:
- オープンソース
- シンプル
使用時の注意
- 公共Wi-Fiでは特に注意
- 二要素認証の併用推奨
- 秘密鍵の管理を厳重に
SSHの代替技術
Mosh(Mobile Shell)
接続が不安定な環境向け:
- 接続が切れても自動再接続
- 遅延があっても快適
- モバイル環境に最適
VPN + リモートデスクトップ
GUIが必要な場合:
- VPNで安全な接続を確立
- リモートデスクトップで画面操作
Web-based SSH
ブラウザからSSH接続:
- Guacamole
- Shell In A Box
- Wetty
インストール不要で便利ですが、セキュリティには注意が必要です。
よくある質問
Q: SSHとSSLの違いは?
A: 用途が違います。
- SSH:サーバーへのリモート接続用
- SSL/TLS:Webサイトの暗号化通信用
両方とも暗号化技術を使いますが、目的が異なります。
Q: Windowsサーバーにも使える?
A: 使えます!
Windows Server 2019以降は標準でOpenSSHサーバーが利用可能。それ以前のバージョンでも、別途インストールすれば使えます。
Q: パスワードと公開鍵、どっちが安全?
A: 公開鍵認証の方が安全です。
理由:
- パスワードは推測や総当たりのリスク
- 公開鍵は数学的に解読がほぼ不可能
- 秘密鍵を盗まれない限り安全
Q: SSHの通信は監視されない?
A: 通信内容は暗号化されているので安全です。
ただし:
- 接続先は分かる
- 通信量は分かる
- 接続時間は分かる
内容は見えませんが、「誰がどこに接続しているか」は分かります。
セキュリティのベストプラクティス
やるべきこと
- 公開鍵認証を使う
- 強いパスフレーズを設定
- 定期的に鍵を更新
- 不要なユーザーを削除
- ログを監視
- Fail2banなどで自動ブロック
- 二要素認証の導入を検討
やってはいけないこと
- デフォルトポートのまま使う
- rootでの直接ログインを許可
- 弱いパスワードを使う
- 秘密鍵を共有する
- 古いSSHバージョンを使い続ける
- 公共の場所で秘密鍵を使う
まとめ:SSHは現代ITの必須スキル
SSHについて、基本から応用まで解説してきました。
押さえておくべきポイント:
- SSHは安全なリモート接続技術
- すべての通信が暗号化される
- パスワードより公開鍵認証が安全
- 適切な設定でセキュリティを高められる
- クラウド時代には必須の技術
最初は黒い画面に戸惑うかもしれません。でも、SSHを使いこなせるようになると、どこからでもサーバーを管理できる自由を手に入れられます。
リモートワークが当たり前になった今、SSHはITエンジニアだけでなく、Webに関わるすべての人にとって重要な技術です。
まずは自分のパソコンでSSHコマンドを試してみることから始めてみませんか?きっと、その便利さと安全性に驚くはずです。
安全で快適なリモート接続ライフを送りましょう!
コメント