Corredor

ウェブ、プログラミングの勉強メモ。

OCI Compute Instance の SSH 接続ポートを変更する

OCI の Compute Instance、具体的には Always Free の Oracle Linux 7 において、通常22番ポートで接続する SSH を、別のポートで接続できるようにする。

結論からいうと、以前書いた以下の記事 (GCE 向けの記事) と全く同じ方法で実現できた。CentOS 向けのやり方を参考にすれば大丈夫そうだ。

neos21.hatenablog.com

一応、順に手順を紹介する。

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 のポートを変更できた。良き良き。

イラスト図解式 この一冊で全部わかるクラウドの基本 第2版

イラスト図解式 この一冊で全部わかるクラウドの基本 第2版

  • 作者:林雅之
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2019/04/20
  • メディア: 単行本