AWS EC2 な Linux サーバへ root ユーザでの SSH ログインを許可する
AWS EC2 で Amazon Linux2 等のインスタンスを作成し、root ユーザでログインしようとすると以下のようなエラーになり、ログイン出来ません。
1 |
|
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
に設定します。
1 |
|
PermitRootLogin
の設定値によって root ユーザで SSH ログインした際の振る舞いが変わります (root 以外のユーザには影響しません)。
設定値 | SSH ログイン | パスワード認証 | 鍵交換方式 |
---|---|---|---|
no |
X | X | X |
yes |
○ | ○ | ○ |
without-password |
○ | X | ○ |
root ユーザでのログインを許可するのであれば最低限、yes
では無く without-password
にしておくべきです。 または、root ユーザログインを許可するサーバは「インターネットから直接、ログイン可能」では無く、SSH Proxy なサーバ経由でしか入れなくする等、対応を検討するのが好ましいです。