SSH接続を簡略化する方法|~/.ssh/config の使い方




はじめに

SSH接続を行う際、下記のように毎回ポート番号を指定していませんか?

<pre> ssh -p 10022 ユーザー名@サーバー名 </pre>

毎回入力するのが少し面倒ですよね。

ただ、実際に困るのは入力の手間だけではありません。

複数のサーバーを扱っていると、

  • 22
  • 10022
  • 2222

のように、サーバーごとにSSHポート番号が異なることがあります。

例えばXserverでは、SSH接続時に10022番ポートを利用します。

そのため、

ssh -p 10022 ユーザー名@サーバー名

のように、毎回ポート番号を指定する必要があります。

サーバーが増えてくると、

「このサーバーって何番ポートだったっけ?」

と、その都度確認することも増えてきます。

そこで便利なのが ~/.ssh/config です。

SSHの接続情報を事前に登録しておくことで、

ssh xserver

のような短いコマンドだけで接続できるようになります。

今回は、SSHがなぜ22番ポートへ接続しに行くのかという仕組みと、~/.ssh/config を使ってSSH接続を簡略化する方法を紹介します。

なぜSSHは最初に22番ポートへ接続しに行くのか?

SSHには「デフォルトポート」が存在します。

SSHクライアントは、ポート番号を指定しなかった場合、自動的に22番ポートへ接続を試みます。

例えば下記コマンド。

ssh ユーザー@ホスト名

実際には内部で次のような意味になります。

ssh -p 22 ユーザー@ホスト名

そのため、XserverのようにSSHポートが22番以外の場合、接続エラーになります。

例えばこのエラー。


※こちらのブログのserverですが、セキュリティ上モザイクにしています

ここで重要なのはこの部分です。

port 22

つまり、SSHクライアントが22番ポートへ接続しようとして失敗していることが分かります。

Xserverでは10022番ポートを使用する

XserverではSSH接続に22番ではなく、10022番ポートを使用します。

そのため、接続時にはポート指定が必要です。

ssh -p 10022 ユーザー@ホスト名

毎回 -p 10022 を入力しない方法

ここからが便利なポイントです。

SSHのconfigファイルを作成することで、接続情報を省略できます。

configファイルを作成する

まず、SSH設定ファイルを開きます。

vim ~/.ssh/config

次に以下を記述します。

Host xserver
    HostName ホスト名
    User ユーザー
    Port 10022

それぞれの意味は以下です。

Host:
接続時に使用する別名です。
今回の場合は、

ssh xserver
で接続できるようになります。

HostName:
実際の接続先サーバー名を指定します。
例:
example.xserver.jp
User:
SSH接続時のユーザー名を指定します。
例:
User
Port:
SSH接続時に利用するポート番号を指定します。
Xserverの場合は 10022 を使用します。

config設定後の接続方法

設定後は、下記だけで接続できます。

ssh xserver

毎回長い接続情報を書く必要がなくなります。

下記実際の私の環境で接続した際の挙動です。

先ほどのエラーが出ずに、接続に成功しました。

configファイルとは?

~/.ssh/config は、SSH接続設定を保存しておけるファイルです。

今回のように、

  • 接続先
  • ユーザー名
  • ポート番号

などを事前に登録できます。

実務ではよく使われており、

ssh prod
ssh stg
ssh xserver

のように短い名前でサーバーへ接続できるようにするケースも多いです。

まとめ

今回は、SSHが22番ポートへ接続しに行く理由と、configファイルを利用して -p 10022 を省略する方法を紹介しました。

ポイントは以下です。

  • SSHはデフォルトで22番ポートへ接続する
  • Xserverは10022番ポートを使用する
  • ~/.ssh/config を利用すると接続を簡略化できる
  • ssh xserver のような短いコマンドで接続できる

SSH設定を整えておくと、日常的なサーバー操作がかなり快適になります。

コメント

タイトルとURLをコピーしました