Como agregar usuario con acceso SSH a Instancia EC2 Amazon Linux. - Chuda
15678
post-template-default,single,single-post,postid-15678,single-format-standard,bridge-core-3.1.2,qode-page-transition-enabled,ajax_fade,page_not_loaded,,qode-child-theme-ver-1.0.0,qode-theme-ver-30.1,qode-theme-bridge,disabled_footer_top,qode_header_in_grid,wpb-js-composer js-comp-ver-7.6,vc_responsive

Como agregar usuario con acceso SSH a Instancia EC2 Amazon Linux.

Como agregar usuario con acceso SSH a Instancia EC2 Amazon Linux.

Por defecto todas las instancias de Amazon EC2  Linux, son lanzadas con una cuenta de usuario del sistema predeterminado con privilegios administrativos a la instancia.

Si necesitamos crear otros usuarios para acceso a la misma, la práctica recomendada es utilizar cuentas separadas para cada usuario con permisos granulares, esto por seguridad.

Ahora vamos a ello.

Agregar un nuevo usuario a nuestra instancia EC2 Amazon Linux.

Lo primero es conectarnos a la instancia vía ssh.

para esto debemos tener en cuenta lo siguiente dependiendo del sistema operativo el usuario puede variar (Sistema operativo ubuntu, usuario ubuntu, Sistema operativo Amazon linux,  usuario ec2-user)

ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name or ip

Luego se contar con accesos a la instancia vía ssh procedemos a agregar el usuario usando el comando adduser esto nos crea un usuario en la instancia EC2, (debe sustituir new_user con el nombre de la cuenta nueva de usuario). En el siguiente ejemplo se muestra como crear un usuario, grupo asociado, un directorio principal y una entrada en el archivo /etc/passwd de la instancia.

sudo adduser new_user

Es posible que el directorio principal /home/new_user/ no se cree de forma predeterminada en algunas configuraciones. Debemos verificar que este directorio principal de usuario haya sido creado antes de continuar, esto lo hacemos con el comando ls.

ls /home/

esto nos debería mostrar la siguiente salida.

ec2-user
new_user

si no les muestra el new_user se debe crear de manera manual.

Nota: Si estamos agregando el usuario new_user a una instancia de Ubuntu, debemos incluir la opción –disabled password (contraseña desactivada) para no tener que agregar una contraseña a la cuenta nueva.

sudo adduser new_user --disabled-password

Debemos cambiarnos al nuevo usuario (new_user) creado de manera que los directorios y archivos cuenten con los permisos correctos.

sudo su - new_user

Si no se creo el directorio new_user dentro de /home/ debemos crearlo antes de continuar.

mkdir new_user/

Luego de esto en el directorio recién creado (/home/new_user/) debemos crear un directorio oculto para ssh, tomar en cuenta que en los sitemas operativos unix/Linux los directorios ocultos comienzan con un punto ( . ).

mkdir .ssh

Debemos colocar los permisos adecuados a el directorio creado usando el comando chmod para dar permisos de manera que solo el usuario new_user cuente con permisos de leer, escribir o abrir el directorio .ssh.

chmod 700 .ssh

Ahora debemos crear un archivo dentro del directorio .ssh de nombre authorized_keys para esto utilizamos el comando touch.

touch .ssh/authorized_keys

Procedemos a cambiar el acceso al archivo recién creado (authorized_keys), para lectura y escritura solo al usuario new_user.

chmod 600 .ssh/authorized_keys

Debemos en el archivo authorized_keys colocar la clave pública ssh para el usuario, esto lo podemos realizar si ya contamos con un par de claves ssh en local o si generamos uno en AWS como por ejemplo (my-key-pair.pem) podemos recuperar esta clave.

Para crear un par de claves desde la consola WEB de AWS con Amazon EC2 seguimos estos pasos:

  1.  Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
  2. En el panel de navegación, en Red y seguridad, seleccione Pares de claves (Key Pairs).
  3. Elija Crear par de claves.
  4. Para Nombre , ingrese un nombre descriptivo para el par de claves. Amazon EC2 asocia la clave pública con el nombre que especifique como nombre de clave. Un nombre de clave puede incluir hasta 255 caracteres ASCII. No puede incluir espacios al inicio o al final.
  5. Para Tipo de par de claves , elija RSA o ED25519.
  6. Para Formato de archivo de clave privada , elija el formato en el que desea guardar la clave privada. Para guardar la clave privada en un formato que se pueda usar con OpenSSH, elija pem. Para guardar la clave privada en un formato que se pueda usar con PuTTY, elija ppk.
  7. Para agregar una etiqueta a la clave pública, elija Agregar etiqueta e ingrese la clave y el valor de la etiqueta. Repita para cada etiqueta.
  8. Elija Crear par de claves.
  9. Su navegador descarga automáticamente el archivo de clave privada. El nombre de archivo base es el nombre que especificó como el nombre de su par de claves, y la extensión del nombre de archivo está determinada por el formato de archivo que eligió. Guarde el archivo de clave privada en un lugar seguro (solo deja descargar una vez en el momento que se crea la clave).

Puede también hacerlo usando AWS CLI:

aws ec2 create-key-pair \
    --key-name my-key-pair \
    --key-type rsa \
    --key-format pem \
    --query "KeyMaterial" \
    --output text > my-key-pair.pem

Debemos otorgar permisos a nuestra clave descargada para poder usarla con nuestro usuario new_user.

chmod 400 key-pair-name.pem

Procederemos a Recuperar la clave pública a partir del archivo my-key-pair.pem, para esto podemos hacerlo de la clave privada en nuestro local.

ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem

Este comando nos generara una salida como la siguiente.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE

Puede ser que falle por permisos de la clave esto lo solucionamos de la siguiente manera.

chmod 400 key-pair-name.pem

Para copiar la clave (llave) pública en el archivo .ssh/authorized_keys, usamos el comando cat, vim, vi, nano, etc.

cat >> .ssh/authorized_keys

Pegamos la clave pública en el archivo .ssh/authorized_keys y luego presionamos  Enter (Intro).

Nota: Para la mayoría de interfaces de línea de comandos, la combinación de teclas Ctrl+Shift+V pega los contenidos del portapapeles en la ventana de línea de comandos. En el caso de la interfaz de línea de comandos de PuTTY, haga clic con el botón derecho para pegar los contenidos del portapapeles en la ventana de línea de comandos de PuTTY.

Luego para salir del cat presionamos la combinación de teclas Ctrl+d esto nos devuelve al prompt de la sesión de la linea de comandos.

Verificamos que el nuevo usuario (new_user) pueda utilizar SSH para conectarse a la instancia EC2.

ssh -i /path/new_key_pair.pem new_user@public_dns_name_of_EC2_Linux_instance or ip

Ejecutamos luego de conectados a la instancia el comando id para verificar la información del usuario nuevo creado (new_user).

id

Esto nos retorna una información similar a esta:

uid=1004(new_user) gid=1004(new_user) groups=1004(new_user)

Ya con esto podemos enviar la clave privada o el par de claves al usuario para que alcance el acceso a la instancia EC2.

Espero les ayude este post como a mi.

 

Happy Hacking!

Referencias.

https://aws.amazon.com/es/premiumsupport/knowledge-center/new-user-accounts-linux-instance/

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html