OCI の IaaS VM に root ユーザで直接 SSH 接続できる

OCI の Always Free な IaaS VM を使っている。デフォルトのユーザは opcubuntu あたりなのだが、ふと root ユーザで直接 SSH 接続はできないのだろうかと気になって調べてみた。

やることは簡単。まずは root ユーザの ~/.ssh/authorized_keys を確認する。すると、次のようにログインを許可しないような文言が書かれている。

$ cat /root/.ssh/authorized_keys
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10;exit 142" ssh-rsa 【SSH 公開鍵】 ubuntu

この行頭の no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10;exit 142" という部分を削って次のようにする。

$ cat /root/.ssh/authorized_keys
ssh-rsa 【SSH 公開鍵】 ubuntu

コレだけ。

あとは ~/.ssh/config で使用しているユーザ名を root に変えれば接続できた。

# ~/.ssh/config
Host oci
  HostName      【Public IP】
  Port          10022          # ポート番号はテキトーに変えてあるよ
  User          root           # ココを ubuntu や opc から root に変えた
  IdentityFile  ~/.ssh/ubuntu  # 使用する SSH 鍵は同じまま

要は /root/.ssh/authorized_keys の内容が問題なだけだったので、簡単に対応できた。