「サーバー用意しといたので、SSHで接続してください。」の対処法

2025/03/13に公開

あるあるシチュエーション

インフラ担当: 「サーバー用意しといたので、SSHで接続してください。」
俺氏: 「はい。」

このような場面で困らないために、SSH接続の基本と手順を整理します。


前提知識

SSH接続とは?

SSH(Secure Shell)は、リモートサーバーに安全に接続し、コマンドの実行やファイル転送を行うためのプロトコルです。

公開鍵認証について

SSH接続は、基本的に「公開鍵暗号方式」で行われます。


環境

  • 接続元: macOS
  • 接続先: なんらかのリモートサーバー

SSH接続のパターン

SSH接続には、以下の2つのパターンがあります。

  1. 自分で秘密鍵・公開鍵を作成し、公開鍵を渡すパターン
  2. インフラ担当から秘密鍵を渡されるパターン

パターン②の場合は、後述の「接続手順」の3以降を実施してください。


秘密鍵・公開鍵を作成し、公開鍵を渡すパターン

1. SSH鍵ペアを作成

以下のコマンドを実行し、秘密鍵・公開鍵のペアを作成します。

ssh-keygen -t ed25519

出力例:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519): /Users/username/.ssh/test_ed25519                           
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/username/.ssh/test_ed25519
Your public key has been saved in /Users/username/.ssh/test_ed25519.pub

ポイント

  • ed25519 を指定することで、よりセキュアな鍵を作成できます。
  • パスフレーズなしで作成すると、接続時にパスワードを入力する必要がなくなります。(必要な場合は ssh-add を使って省略可能)

作成されたファイル:

ls ~/.ssh
test_ed25519      # 秘密鍵
test_ed25519.pub  # 公開鍵

2. 公開鍵をインフラ担当に渡す

作成した公開鍵(.pubのファイル)をインフラ担当に渡し、サーバー側に設定してもらいます。


3. サーバー情報をもらう

インフラ担当から、以下の情報をもらいます。

  • ホスト名(またはIPアドレス)
  • アカウント名
  • パスワード(ない場合もある)
  • 接続ポート番号(デフォルトは22)

4. /etc/hosts にホスト名を設定(任意)

IPアドレスだと覚えにくいので、分かりやすいホスト名を設定しておくと便利です。

sudo vim /etc/hosts

以下のように記述すると、test_server という名前で接続できるようになります。

11.11.111.11 test_server

※ IPアドレスを直接使う場合は、この設定は不要です。


5. ~/.ssh/config にサーバー情報を設定

SSHの設定を簡単にするため、~/.ssh/config に接続情報を記述します。

vim ~/.ssh/config
# ~/.ssh/config
Host test_server
   User 【アカウント名】
   Port 【ポート番号】 # デフォルトなら省略OK
   IdentityFile ~/.ssh/test_ed25519

6. SSH接続

以下のコマンドで接続できます。

ssh test_server

接続できない場合は?

  • 設定ミスがないか確認
  • 接続元のIPが許可されているかインフラ担当に確認

秘密鍵を渡されるパターン

インフラ担当から秘密鍵を渡された場合、手順1・2を省略し、手順3から進めてください。
秘密鍵を ~/.ssh に保存し、chmod 600 で適切な権限を設定することを忘れずに。

chmod 600 ~/.ssh/【渡された秘密鍵ファイル】

まとめ

Web系の開発では、アプリ開発者とインフラ担当が分かれていることが多く、SSH接続を当然のように求められることもあります。

この手順を押さえておけば、 「SSHで接続してください」→「はい」 の流れでスムーズに対応できるはず!
この記事が役に立てば嬉しいです。


Discussion