OCI Compute Instance の SSH 接続ポートを変更する
OCI の Compute Instance、具体的には Always Free の Oracle Linux 7 において、通常22番ポートで接続する SSH を、別のポートで接続できるようにする。
結論からいうと、以前書いた以下の記事 (GCE 向けの記事) と全く同じ方法で実現できた。CentOS 向けのやり方を参考にすれば大丈夫そうだ。
一応、順に手順を紹介する。
OCI で変更後のポートの Ingress Rule を設定しておく
今回の例では 10022 番ポートで SSH 接続できるように変更する予定なので、予め OCI 管理コンソールより、Security List を編集して 10022 番ポートへのアクセスを許可するよう Ingress Rule を設定しておく。
- Stateless : No
- Source Type : CIDR
- Source CIDR : 0.0.0.0/0 (ココはお好みで)
- IP Protocol : TCP
- Source Port Range : (未入力)
- Destination Port Range : 10022
現状の Ingress Rule は、変更前である 22 番ポートへのアクセス許可と、上で新たに追加した 10022 番ポートへのアクセス許可の、2つのルールがある状態にしよう。
OCI Compute Instance で設定開始
OCI Compute Instnace に22番ポートで SSH 接続し、次のように設定を開始する。
# ファイアウォールを無効化する
$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
# 以下のファイルを編集し SELinux を無効化する
$ sudo vi /etc/selinux/config
# 'SELINUX=enforcing' の行を 'SELINUX=disabled' と変更する
# 設定を確認する
$ sudo systemctl is-enabled firewalld
disabled
$ sudo getenforce
Enforcing
# Enforcing と出ていたら、インスタンスを再起動する
# 以下のように Disabled になっていることを確認する
$ sudo getenforce
Disabled
# ポート番号を変更する
$ sudo vi /etc/ssh/sshd_config
# '#Port 22' のコメント行をアンコメントし 'Port 10022' と変更する
# sshd を再起動する
$ sudo systemctl restart sshd
# 設定を確認・10022ポートをリッスンしていることが分かる
$ systemctl status sshd.service
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-01-28 07:17:41 GMT; 3s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 18326 (sshd)
Tasks: 1
Memory: 1.3M
CGroup: /system.slice/sshd.service
└─18326 /usr/sbin/sshd -D
Jan 28 07:17:41 neos-compute systemd[1]: Starting OpenSSH server daemon...
Jan 28 07:17:41 neos-compute sshd[18326]: Server listening on 0.0.0.0 port 10022.
Jan 28 07:17:41 neos-compute sshd[18326]: Server listening on :: port 10022.
Jan 28 07:17:41 neos-compute systemd[1]: Started OpenSSH server daemon.
ココまで出来たら、インスタンスを再起動する。反映までは5〜10分くらいかかるっぽいので、繋がらないように見えても焦らない。
インスタンスを再機動したら、以下のように変更後のポート番号を指定して SSH 接続してみる。
# ポート番号を指定して SSH 接続する
$ ssh -i ~/.ssh/my_oci_vm -p 10022 opc@【Public IP】
~/.ssh/config
でポート番号を指定するなら以下のように記述する。
~/.ssh/config
Host my_oci_vm
HostName 【Public IP】
Port 10022
User opc
IdentityFile ~/.ssh/my_oci_vm
コレで無事アクセスできれば成功。
22番ポートへのアクセスを許可する Ingress Rule を削除する
変更後のポートへのアクセス許可ルールを追加したのと同じ要領で、22番ポートへのアクセスを許可する Ingress Rule を、Security List から削除しておく。
以上
コレで SSH のポートを変更できた。良き良き。