SSHのデフォルトポートは22番です。セキュリティ対策のため、踏み台サーバーなどアクセス元IPによる制限を加えないサーバーを立てる場合、SSHポート番号をwell known portsの22番から変更したいときがあります。
今回はポートを2222に変更してみます。
設定ファイルを変更する
まず、EC2インスタンスにデフォルトポートでSSH接続します。接続方法とコマンドはAWSコンソールで見ることができるので省略します。
次に、設定ファイルを更新します。
# 設定ファイルのバックアップを取る
$ cp /etc/ssh/ssh_config /tmp
# 設定ファイルでポートを変更する
$ sudo vi /etc/ssh/ssh_config
# バックアップしたファイルと編集後のファイルを比較する
$ diff -u /tmp/ssh_config /etc/ssh/ssh_config
- Port 22
+ Port 2222
sshdを再起動して設定を反映します。
$ sudo systemctl reload sshd
サービス再起動後、起動状態を確認します。
$ sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-04-15 19:48:43 UTC; 1 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 3763 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Main PID: 3239 (sshd)
CGroup: /system.slice/sshd.service
└─3239 /usr/sbin/sshd -D
...
念のため、設定が完了し動作確認できるまでこのSSHコネクションは切断せずにおきます。もし設定にミスがあってサーバーに接続できなくなった場合、この接続から修正を行います。
セキュリティグループを更新する
EC2インスタンスに接続して上記の変更を行った後、AWSコンソールから「セキュリティグループ」にアクセスして、「インバウンドルール」のポートを2222に変更します。
ここまで終わったら、ターミナルの新規ウィンドウを開き新しいセッションを張って、対象サーバーにポート2222でSSH接続できることを確認します。