← PC・IT用語集へ戻る

SSH

Secure Shell
network security beginner
離れた場所にあるサーバーやPCへ、安全に接続してターミナルから遠隔操作するための仕組みのこと。
SSH (Secure Shell)

概要(サマリー)

SSHとは、離れた場所にあるサーバーやPCへ、安全に接続してターミナルから遠隔操作するための仕組みのことである。

ネットワーク越しに別のコンピューターへ入って操作するため、通信の途中でのぞき見されたり、内容を盗み見られたりしないよう、やり取り全体が暗号化される。「ネット上に防弾ガラス付きの専用トンネルを作って、その中を通して命令を送る」ようなイメージで考えるとわかりやすい。サーバー管理やファイル操作、デプロイ作業などで非常によく使われる。

詳細解説

SSHは「安全な遠隔操作」の仕組みである

普通、ターミナルでコマンドを打つときは、今使っている自分のパソコンに対して操作している。
しかしSSHを使うと、手元のパソコンから離れた場所にあるサーバーや別のPCに入り、その中でコマンドを実行できる。

たとえば、レンタルサーバーやVPSクラウド上のLinuxサーバーに接続して、

といったことができる。
つまりSSHは、遠くのコンピューターをターミナル経由で操作するための入口である。

なぜ「Secure」が重要なのか

昔は、ネットワーク経由で遠隔操作する仕組みとして、通信内容が暗号化されないものもあった。
そのような仕組みでは、途中で通信を盗み見られると、パスワードや操作内容が見えてしまう危険がある。

SSHでは、認証のやり取りや、その後の通信内容が暗号化される。
そのため、ネット越しに使っても比較的安全にやり取りしやすい。

この「安全に遠隔操作できる」という点が、SSHのいちばん大きな価値である。
つまりSSHは、ただの遠隔操作ではなく、暗号化された遠隔操作なのである。

どんな場面で使うのか

SSHは、主にサーバー管理や開発の現場で使われる。
代表的には次のような場面である。

サーバーへログインするとき

Webサイトやアプリを置いているサーバーに入って、設定確認や作業を行う。

ファイルやログを確認するとき

エラーの原因を探すためにログを見る、設定ファイルを開く、といった作業に使う。

デプロイやメンテナンスをするとき

更新ファイルを配置したり、キャッシュを消したり、サービスを再起動したりするときに使う。

Gitや開発環境の接続で使うとき

GitHubとの接続や、自動化ツールとの安全な通信にSSH鍵を使うこともある。

このようにSSHは、サーバーを扱う人にとってかなり基本的な仕組みである。

どうやって接続するのか

SSHは、ターミナルや接続ソフトから使う。
たとえば、基本的な接続例は次のようになる。

ssh username@example.com

これは、example.com というサーバーへ、username というユーザー名で接続する例である。
もしポート番号が標準の 22 以外なら、次のように指定することもある。

ssh -p 10022 username@example.com

この場合は、10022 番ポートを使って接続する。
初心者のうちは、「どのサーバーに、どのユーザーで、どの入口から入るかを指定している」と考えるとわかりやすい。

Port Number との関係

SSHの説明では、Port Number もよく一緒に出てくる。
SSHは標準では 22 番ポートを使うことが多い。

ただし、運用上の都合やセキュリティ対策の一部として、10022 など別の番号に変更していることもある。
そのため、SSH接続情報には次のような要素が含まれることが多い。

  • ホスト名またはIPアドレス
  • ユーザー名
  • ポート番号
  • 認証方法

つまりSSHは、「相手の住所」「入口番号」「入るための身分確認」を組み合わせて使う仕組みだと考えられる。

パスワード認証と鍵認証

SSHで接続するときの認証方法には、大きく2つの考え方がある。

パスワード認証

サーバーへ入るときに、ユーザー名とパスワードで認証する方法である。
初心者にはわかりやすいが、運用によっては安全性の観点から無効にしている場合もある。

公開鍵認証

秘密鍵と公開鍵のペアを使って認証する方法である。
秘密鍵は手元のPCに置き、公開鍵をサーバー側に登録して使う。一般に、SSHではこちらがよく使われる。パスワードを毎回送る必要がなく、安全性や運用性の面で有利なことが多い。

そのため、実務では「SSH鍵を登録して接続する」という話がよく出てくる。
ここで使われるのが 公開鍵認証(Public Key Authentication) である。

Remote Desktop とは何が違うのか

SSHは「遠隔操作」と聞くと、画面を遠隔で見るものと混同されやすい。
しかしSSHは基本的に文字ベースの操作である。

  • SSH
    ターミナルでコマンドを打って操作する
  • Remote Desktop
    相手の画面そのものを表示して操作する

つまりSSHは、GUI画面を触るというより、コマンドラインで中に入る仕組みである。
サーバー管理では、画面よりもコマンド操作のほうが軽くて柔軟なため、SSHがよく使われる。

FTP とは何が違うのか

これも混同しやすい。

  • SSH
    サーバーへ安全にログインして、コマンド操作までできる
  • FTP
    主にファイル転送のための仕組み。通常のFTPは通信が暗号化されないことがある
  • SFTP
    SSHの仕組みを使った安全なファイル転送

つまりSSHは「遠隔操作全体の入口」であり、ファイル転送だけの話ではない。
ただしSSHを土台にして安全にファイル転送する仕組みとしてSFTPが使われることも多い。

SSHでよくあるトラブル

初心者がつまずきやすいポイントもいくつかある。

ホスト名やIPアドレスの指定ミス

接続先そのものが間違っていると当然つながらない。

ポート番号の違い

標準の22番ではなく変更されているのに、その指定を忘れると接続できない。

鍵ファイルや権限の問題

秘密鍵の場所が違う、権限設定が不適切、登録した公開鍵と一致していない、といった理由で失敗することがある。

接続先のフィンガープリント警告

初回接続時やサーバー変更時に、「本当にこの相手でよいか」を確認するメッセージが出ることがある。
これは安全確認の一部であり、無条件に無視しないほうがよい。

AI時代にSSHの理解が重要な理由

AIにサーバー作業を手伝わせると、SSHはかなり頻繁に出てくる。
たとえば次のような場面である。

  • サーバーへ接続してログを見たい
  • デプロイ作業をしたい
  • 設定ファイルを書き換えたい
  • キャッシュ削除や再起動をしたい
  • GitHub連携や自動化をしたい

このとき、SSHの意味がわかっていないと、「何を通じてサーバーに入っているのか」「なぜ鍵が必要なのか」「なぜポート番号が出てくるのか」が見えにくい。
逆に、SSHを「安全な遠隔操作のトンネル」と理解しているだけで、AIの説明や手順がかなり読みやすくなる。

AIコーディングとの関係

AIにコード生成や修正を依頼するとき、SSHの意味を理解していると、出力されたコードやエラー内容を判断しやすくなる。
離れた場所にあるサーバーやPCへ、安全に接続してターミナルから遠隔操作するための仕組みのこと。

AIへ相談するときは、「何をしたいのか」「どの環境で起きているのか」「どのファイルやエラーを見ているのか」を一緒に伝えるとよい。
用語だけを投げるより、具体的な状況と期待する結果を添えることで、より実用的な回答を得やすくなる。

よくある勘違い

SSHは名前だけ覚えれば十分?

名前だけでは不十分である。
実際の開発では、どんな場面で使われ、何と混同しやすいかまで理解しておくと判断しやすい。

SSHはAIに任せれば理解しなくてよい?

そうではない。
AIは説明やコードを出せるが、最終的にその内容が正しいか、今の目的に合っているかを確認するのは人間である。

SSHは単独で覚えればよい?

単独ではなく、関連する用語や実際の作業の流れと一緒に覚えると理解しやすい。
用語同士のつながりを意識すると、AIへの質問やエラー調査もしやすくなる。

まとめ

  • SSHは、離れた場所にあるサーバーやPCへ、安全に接続してターミナルから遠隔操作するための仕組みのこと。
  • 関連する用語や実際の作業場面と一緒に理解すると、使いどころを判断しやすい。
  • AIコーディングでは、用語の意味を理解しているほど、AIの説明や生成コードを確認しやすくなる。
  • 迷ったときは、エラー内容、目的、前提条件を整理してAIに聞くとよい。

より詳しくAIに聞いてみよう

  • SSHとは何かを、中学生でもわかるように具体例つきで説明してください。
  • SSHと FTP と Remote Desktop の違いを、初心者向けに整理してください。
  • SSHでサーバーへ接続するときに必要な情報を、やさしく教えてください。
  • Public Key Authentication の仕組みを、初心者向けに説明してください。
  • AIコーディングやサーバー運用でSSHが重要になる理由を、具体例つきで教えてください。