らくがきちょう

なんとなく

AWS EC2 な Linux サーバへ root ユーザでの SSH ログインを許可する

AWS EC2 で Amazon Linux2 等のインスタンスを作成し、root ユーザでログインしようとすると以下のようなエラーになり、ログイン出来ません。

Please login as the user "ec2-user" rather than the user "root".

root ユーザでログイン出来るようにするには /root/.ssh/authorized_key ファイル中に書かれている下記の部分を探します。

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3Nza.....

ssh rsa より前の部分を削除し、以下のようにします。

ssh-rsa AAAAB3Nza.....

これで root ユーザでも SSH ログイン出来るようになります。 また、root ログインを許可する場合は最低限、パスワードでは無く、鍵交換方式とすべきです。 /etc/ssh/sshd_config ファイルで PermitRootLogin 設定を探し、これを without-password に設定します。

PermitRootLogin without-password

PermitRootLogin の設定値によって root ユーザで SSH ログインした際の振る舞いが変わります (root 以外のユーザには影響しません)。

設定値 SSH ログイン パスワード認証 鍵交換方式
no
yes
without-password

root ユーザでのログインを許可するのであれば最低限、yes では無く without-password にしておくべきです。 または、root ユーザログインを許可するサーバは「インターネットから直接、ログイン可能」では無く、SSH Proxy なサーバ経由でしか入れなくする等、対応を検討するのが好ましいです。