Una forma más simple es como se muestra a continuación.
Para usuarios de Linux / Mac:
Para crear claves públicas y privadas, use el siguiente comando:
$ ssh-keygen -t rsa -b 4096
Sube la clave pública a una carpeta en tu bucket de S3. Por ejemplo: S3> MyBucket> Keypair
Guarde y asegure su clave privada.
Para usuarios de Windows:
- Use puttygen para generar las claves.
- Siga DigitalOcean para crear claves SSH.
- Cargue la clave pública en S3> MyBucket> Keypair
- Guarde y asegure su clave privada.
Los siguientes pasos son importantes durante el lanzamiento de cualquier AMI de Linux.
Asegúrese de que el rol de IAM tenga un rol creado con la política AmazonS3FullAccess. Esto permite que la instancia asuma un rol para acceder a los depósitos de S3. Esto es necesario para leer las claves públicas de S3 y copiarlas en el perfil del usuario
Agregue el siguiente código en la sección de datos del usuario en Configurar detalles de instancia> Detalles avanzados (como texto):
#!/bin/bash
usermod user 1
usermod -aG wheel user1
mkdir /home/user1/.ssh/
aws s3 cp s3://MyBucket /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
useradd user2
usermod -aG wheel user2
mkdir /home/user2/.ssh/
aws s3 cp s3://MyBucket /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
sudo -i
echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
yum update -y
Esta configuración crea Usuario1 y Usuario2 y los agrega a los usuarios de sudo . El comando aws s3 cp copia las claves públicas de los usuarios de la carpeta S3 a su .ssh/authorized_keys path
. La última sección es ejecutar comandos como administrador sin necesidad de contraseñas.
Hay muchas mejoras de seguridad que se pueden recomendar aquí. Si bien no se usa explícitamente en este ejemplo, limitar el acceso al depósito S3 a un depósito específico y conocer las implicaciones de seguridad de deshabilitar el uso de la contraseña en sudo, son algunas cosas que se pueden resaltar. Úselos sabiamente según sus necesidades particulares.