En la entrada de hoy voy a explicaros como podéis dar acceso SSH a nuevos usuarios a una instancia de AWS EC2 Linux cada uno con su propio archivo de clave privada y así no tener que compartir el archivo de clave privada que se crea por defecto junto con la creación de la instancia.
Este tutorial voy a realizarlo sobre la distribución Linux Ubuntu y os valdrá para otras distribuciones aunque seguramente debáis modificar algún comando para adaptarlo.
Creación nuevo keypar en AWS EC2
Lo primero que haremos será crear el archivo de clave privada que utilizará el nuevo usuario para conectarse a nuestra instancia de AWS. Para ello accedemos a nuestra consola de AWS EC2 y nos dirigimos en el menú de la izquierda a Red y seguridad-Pares de claves.
En la siguiente pantalla, arriba a la derecha, pulsamos sobre Crear par de claves.
Especificamos un nombre, en tipo de par de claves seleccionamos RSA, en el formato de archivo de clave privada .ppk y por último pulsamos sobre Crear par de claves.
Con esto se habrá creado un nuevo par de claves para el usuario y veréis como de forma automática se nos habrá descargado el archivo de clave privada el cual guardaremos para utilizarlo más adelante.
Creación de nuevos usuarios en la instancia Linux
Una vez tenemos el archivo de clave privada del nuevo usuario el siguiente paso a dar será conectarnos a nuestra instancia Linux con el usuario predeterminado que se crea por defecto, en el caso de la distribución Ubuntu el usuario es ubuntu, o con cualquier otro usuario que tenga privilegios sudo.
Creamos el nuevo usuario:
root@server1:/home/ubuntu# sudo adduser laboratorio1
Es posible que necesitéis que este usuario deba tener la capacidad de poder elevar privilegios a sudo y para ello tendremos que utilizar el siguiente comando. Este punto es opcional y no es necesario realizarlo sino necesitáis que el usuario pueda elevar privilegios.
root@server1:/home/ubuntu# sudo usermod -aG sudo laboratorio1
Ahora tendremos que cambiar el contexto de seguridad y para ello tendremos que cambiar al usuario que hemos creado, en mi caso laboratorio1
root@server1:/home/ubuntu# sudo su laboratorio1
Creamos un directorio oculto que llamaremos ssh y su correspondiente estructura sobre el directorio home del nuevo usuario y le daremos el permiso 700 para que sólo el usuario pueda acceder a la información contenida en este directorio.
laboratorio1@server1:/home/ubuntu$ cd /home/laboratorio1/ laboratorio1@server1:~$ mkdir .ssh laboratorio1@server1:~$ chmod 700 .ssh laboratorio1@server1:~$ touch .ssh/authorized_keys
Una vez creada la estructura el siguiente paso será obtener la key privada del par de claves que generamos en el primer punto de este tutorial. Para ello vamos a utilizar la herramienta PuTTYgen que se incluye junto con la aplicación gratuita PuTTY.
Abrimos la aplicación PuTTYgen y cargamos el archivo de clave privada que generamos y nos descargamos en el primer punto (pulsar sobre File-Load private key).
A continuación tendremos que copiar todo el texto que aparece en el cuadro Public key for pasting…. excepto la parte final que aparece el nombre del usuario, en mi caso laboratorio1.
Copiado este texto nuevamente nos vamos a la consola SSH de nuestra instancia de Linux y ejecutamos el siguiente comando:
laboratorio1@server1:~$ vi .ssh/authorized_keys
En el editor de texto vi pegamos el texto de la clave privada que copiamos y pulsamos :wq para guardar los cambios.
Por último cambiamos los permisos del archivo .ssh/authorized_keys a 600.
laboratorio1@server1:~$ chmod 600 .ssh/authorized_keys
Y listo con esto ya tendríamos todo lo necesario para que el usuario pueda conectar a la instancia de EC2 con su propio usuario y archivo de clave privada.
Como siempre espero que os haya sido de utilidad.
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.