Al crear una instancia Linux en AWS, Amazon nos obliga a iniciar una conexión por SSH a una instancia EC2 Linux en AWS usando un usuario no privilegiado predefinido por ellos, como ec2-user o ubuntu. Si tratamos de iniciar una sesión SSH como root, nos encontraremos con el siguiente mensaje:
Using username "root". Authenticating with public key "imported-openssh-key" Please login as the user "ec2-user" rather than the user "root".
Para permitir el login del usuario root vía SSH, cambiamos al usuario root:
HOST# sudo su
Nos situamos en la home de root:
HOST# cd /root/.ssh
Y buscamos el fichero authorized_keys, el cual contendrá algo parecido a:
HOST# cat authorized_keys 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 AAAAB3NzaC1yc2EAAAADA+K4WkbVwemgociUzbzVtBb5SJZHbV1uqKNBH8mS82o6ffjhUGljbUjTj5EStJVMqnxFZpi7+RukgH55lwtKeIASZxjyiHEKq+0xg3iyRno2masFCgiwZD18znPnUFtX0Js8vM0+QOOsb7EE+w8nLuk+m4Jxze+eTjjErRSrTkpQejeJ3OkfGce3GLJLCwA2KsUMMLEsAvyTL6qn9ppk+VaO1fNeQtrr0OYSBKo3 KEY_NAME
Para permitir el login de root por SSH, tenemos que borrar el "command" con algún editor tipo vi:
command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10"
A continuación, debemos editar el fichero de configuración de SSH (/etc/ssh/sshd_config) y modificar la política PermitRootLogin, la cual viene desactivada por defecto en AWS (PermitRootLogin No).
Si queremos acceder solamente con clave pública/privada:
PermitRootLogin wihtout-password
Si queremos acceder con password:
PermitRootLogin Yes
Una vez modificada la política, recargamos la configuración del servicio SSH para que lea los cambios:
HOST# systemctl reload sshd
Hecho esto, ya podremos conectarnos a la instancia EC2 Linux por SSH con el usuario root.