未経験からエンジニアへ|一緒に会社を作る仲間を募集|SKサービス

インフラ入門 約5分で読めます

SSHとは?リモート接続の基本を初心者向けにわかりやすく解説

「SSHって何?」「サーバーに接続するって、どうやるの?」

インフラやサーバーの勉強を始めると必ず出てくるSSH。これは、離れた場所にあるサーバーに安全に接続するための技術です。

この記事では、SSHとは何か、なぜ必要なのか、どうやって使うのかを、初心者の方にもわかりやすく解説します。

SSHとは?

SSH(Secure Shell)は、ネットワーク経由で別のコンピュータに安全に接続し、操作するためのプロトコル(通信の約束事)です。

読み方は「エスエスエイチ」。言葉の意味を確認しましょう。

用語 意味
Secure 安全な
Shell コンピュータを操作するためのインターフェース

つまり、「安全なシェル接続」という意味です。暗号化された通信路を通じて、サーバーのシェル(コマンドライン)を操作できます。

どんな場面で使うの?

SSHは主に以下のような場面で使われます。

  • サーバー管理:クラウド上のサーバー(AWS EC2など)にログインして操作
  • ファイル転送:サーバーとファイルをやり取り(SCP、SFTP)
  • 開発作業:リモートの開発環境で作業
  • Git操作:GitHubやGitLabとの認証

なぜSSHが必要なのか

SSHが登場する前は、Telnetというプロトコルが使われていました。しかしTelnetには大きな問題がありました。

Telnetの問題点

Telnetは通信内容を暗号化しないため、以下のようなリスクがありました。

  • パスワードが平文(そのままの文字)でネットワーク上を流れる
  • 第三者に通信内容を盗み見られる可能性がある
  • なりすましや改ざんのリスク

SSHのメリット

SSHは、これらの問題を解決するために開発されました。

  • 暗号化:すべての通信内容が暗号化される
  • 認証:接続先が正しいサーバーか確認できる
  • 安全な認証方式:パスワード認証だけでなく、公開鍵認証も使える

現在では、Telnetはほとんど使われず、リモート接続といえばSSHが標準となっています。

SSHの仕組み

SSHがどのように安全な通信を実現しているのか、簡単に説明します。

暗号化の仕組み

SSHは、公開鍵暗号共通鍵暗号を組み合わせて通信を暗号化します。

  1. 最初に、安全に共通鍵(セッションキー)を交換
  2. その後の通信は、高速な共通鍵暗号で暗号化

これにより、第三者が通信を傍受しても、内容を解読することはできません。

デフォルトのポート番号

SSHは、デフォルトでポート22番を使用します。セキュリティ上の理由から、別のポート番号に変更することもあります。

SSHの2つの認証方式

SSHには主に2つの認証方式があります。

1. パスワード認証

ユーザー名とパスワードで認証する最もシンプルな方式です。

メリット:

  • 設定が簡単
  • 追加の準備が不要

デメリット:

  • パスワードが推測されるリスク
  • ブルートフォース攻撃(総当たり攻撃)を受けやすい

2. 公開鍵認証

より安全な認証方式です。本番環境では、こちらが推奨されます。

仕組み:

  1. 秘密鍵公開鍵のペアを生成
  2. 公開鍵をサーバーに登録
  3. 接続時、サーバーが公開鍵を使って認証チャレンジを作成
  4. クライアントが秘密鍵で応答
  5. サーバーが検証し、認証成功

メリット:

  • パスワードがネットワーク上を流れない
  • ブルートフォース攻撃に強い
  • 秘密鍵を持っている人だけがログインできる
方式 セキュリティ 設定の手軽さ 推奨度
パスワード認証 開発・学習用
公開鍵認証 本番環境推奨

CASUAL TALK

服装自由・オンライン対応

まずは気軽に話しませんか?

応募じゃなくてOK。「ちょっと話を聞いてみたい」だけでも大歓迎。30分のカジュアル面談で、あなたの可能性が見えてきます。

カジュアル面談を予約する

SSHの基本的な使い方

実際にSSHを使う方法を見ていきましょう。

接続コマンド

基本的な接続コマンドは以下の通りです。

# 基本形
ssh ユーザー名@サーバーのIPアドレス

# 例:192.0.2.1にubuntuユーザーで接続
ssh ubuntu@192.0.2.1

# ポート番号を指定する場合
ssh -p 2222 ubuntu@192.0.2.1

# 秘密鍵を指定する場合
ssh -i ~/.ssh/mykey.pem ubuntu@192.0.2.1

公開鍵の生成

公開鍵認証を使うには、まず鍵のペアを生成します。

# 鍵の生成(Ed25519を推奨)
ssh-keygen -t ed25519

# または RSA(4096bit)
ssh-keygen -t rsa -b 4096

このコマンドを実行すると、以下のファイルが生成されます。

  • ~/.ssh/id_ed25519:秘密鍵(絶対に他人に渡さない!)
  • ~/.ssh/id_ed25519.pub:公開鍵(サーバーに登録する)

公開鍵のサーバーへの登録

公開鍵をサーバーに登録するには、サーバーの ~/.ssh/authorized_keys ファイルに追加します。

# 便利なコマンド(パスワード認証が有効な場合)
ssh-copy-id ubuntu@192.0.2.1

接続の切断

# 接続を切断
exit
# または Ctrl + D

SSHを使う際の注意点

SSHを安全に使うためのポイントを紹介します。

1. 秘密鍵の管理

秘密鍵は絶対に他人に渡してはいけません。流出すると、そのサーバーに誰でもログインできてしまいます。

  • 秘密鍵のパーミッションは600(自分だけ読み書き可能)に設定
  • 秘密鍵にパスフレーズを設定する
  • GitHubなどにうっかりアップロードしない

2. 本番環境ではパスワード認証を無効化

本番環境では、パスワード認証を無効化し、公開鍵認証のみにすることを推奨します。

3. rootでの直接ログインを禁止

root(管理者)ユーザーで直接ログインできる設定は危険です。一般ユーザーでログインし、必要なときだけ sudo を使いましょう。

WindowsでSSHを使うには

Windowsでは、以下の方法でSSHを使えます。

  • Windows 10/11標準のOpenSSH:コマンドプロンプトやPowerShellから使用可能
  • Tera Term:日本で人気のSSHクライアント
  • PuTTY:世界的に有名なSSHクライアント
  • WSL(Windows Subsystem for Linux):Linux環境でSSHを使用

まとめ

この記事で解説した内容をまとめます。

項目 内容
SSHとは 安全にリモートサーバーに接続するためのプロトコル
ポート番号 デフォルトは22番
認証方式 パスワード認証、公開鍵認証
推奨認証 公開鍵認証(本番環境では必須)
秘密鍵の扱い 絶対に流出させない、パーミッション600

SSHは、サーバー管理やインフラ業務において必須のスキルです。まずはローカル環境や学習用サーバーで接続練習をして、基本操作に慣れておきましょう。

CASUAL TALK

服装自由・オンライン対応

まずは気軽に話しませんか?

応募じゃなくてOK。「ちょっと話を聞いてみたい」だけでも大歓迎。30分のカジュアル面談で、あなたの可能性が見えてきます。

カジュアル面談を予約する
この記事をシェア
CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK

まずは気軽に話しませんか?

応募じゃなくてOK|30分|服装自由|オンライン対応

Page Top