なぜ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
で接続できるようになります。
実際の接続先サーバー名を指定します。
例:
example.xserver.jp
SSH接続時のユーザー名を指定します。
例:
User
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設定を整えておくと、日常的なサーバー操作がかなり快適になります。


コメント