OCI の IaaS VM に root ユーザで直接 SSH 接続できる
OCI の Always Free な IaaS VM を使っている。デフォルトのユーザは opc
か ubuntu
あたりなのだが、ふと 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
の内容が問題なだけだったので、簡単に対応できた。