¿Cómo puedo conectarme a mi instancia Amazon EC2 si perdí mi Key Pair SSH después de su lanzamiento inicial?
--
En ocasiones hemos perdido u olvidado la keypar .pem de acceso ssh de nuestro servidor Amazon linux y no hemos podido conectar via ssh para administrar y gestionar nuestro servidor.
A continuación, les guiaré paso a paso para realizar la generación de una nueva key par y como ser configurada para la instancia Amazon Linux:
- Creación de la Key pair.
Ingresamos al servicio de EC2 →Key pair
Creamos el nombre de nuestro Key pair para nuestro caso “ec2recoveryssh”.
Vemos creada la nueva Key pair.
- *Recuerde la ubicación de su máquina local donde ha guardado la Key pair.
2. Generación de la Public Key a partir de la Private Key
Una vez almacenada la llave en nuestro equipo local ( en mi caso en la Mac), ingresamos a la terminal de mi máquina local y realizamos el siguiente comando para generar nuestra llave pública que pondremos a nuestra instancia EC2 Linux.
ssh-keygen -y -f ec2recoveryssh.pem
El comando retorna la llave pública como la siguiente
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCu9UG1abx0GCNLwKwZ+J4a4PtuOsY8G4U5sY3xWZ43btUF4tKTjqWhRNR+5l0fUYU9kvspa8/+j5vr2NCEyd+2cppQ0lOK/+OmZsXjuyL+crWdA6byTbdGA1sFyzQGM85eWZ3TRpYTi2TdWKkfPzTLSUPf8pXtugyFLYNO9KvSkf1FUz5hioz9Ut3ESGH0XmF6VZlrn31arY9zeBymacFWOHK9Sb+0dVZSLEHW1ebss6Qr5Xe4xlw+0Ts4ZiqSM65q8vi73QkVx/2/XI2qubUOF2UpV8h8Mbq+v5pPZ/FwaBb3XvNjzvAFLSuNEC08q7JPPL1T9YvQ5wRMAtTRp7Qx
Si el comando falla, ejecute el siguiente comando para asegurarse de haber cambiado los permisos en su archivo de Key pair.
Chmod 400 nombredesukeypair
3. Inserción Publick Key en la instancia a través de User Data
Para la inserción de la Public Key es necesario apagar la instancia
Una vez se encuentra en Stop la instancia realizamos Actions, Instance settings, Edit user data.
Copiamos el siguiente Script
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
- name: username
ssh-authorized-keys:
- PublicKeypair
Reemplace el nombre de usuario con su nombre de usuario, en mi caso ec2-user. Puede ingresar el nombre de usuario predeterminado o ingresar un nombre de usuario personalizado, si se configuró uno previamente para la instancia.
En la sección que indica -PublicKeypair debe pegar la llave publica generada en el paso 2.
Ahora el Script para mi caso quedaría de la siguiente forma:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
- name: ec2-user
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCu9UG1abx0GCNLwKwZ+J4a4PtuOsY8G4U5sY3xWZ43btUF4tKTjqWhRNR+5l0fUYU9kvspa8/+j5vr2NCEyd+2cppQ0lOK/+OmZsXjuyL+crWdA6byTbdGA1sFyzQGM85eWZ3TRpYTi2TdWKkfPzTLSUPf8pXtugyFLYNO9KvSkf1FUz5hioz9Ut3ESGH0XmF6VZlrn31arY9zeBymacFWOHK9Sb+0dVZSLEHW1ebss6Qr5Xe4xlw+0Ts4ZiqSM65q8vi73QkVx/2/XI2qubUOF2UpV8h8Mbq+v5pPZ/FwaBb3XvNjzvAFLSuNEC08q7JPPL1T9YvQ5wRMAtTRp7Qx
Ahora lo pegamos en la sección “Modify use data as text” y damos Save
Nuevamente encendemos la instancia para que los cambios queden.
Hacemos la prueba de conexión via SSH con la nueva Key Pair “ec2recoveryssh.pem”
oscar.ocampo@MacBook-Pro-de-Oscar prueba % ssh -i ec2recoveryssh.pem ec2-user@ec2-18-217-57-91.us-east-2.compute.amazonaws.com
The authenticity of host 'ec2-18-217-57-91.us-east-2.compute.amazonaws.com (18.217.57.91)' can't be established.
ED25519 key fingerprint is SHA256:rpTDSiwd/miremadXALosMV6ejO+3Bwzrp52Bhg+YxE.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:11: ec2-3-17-145-76.us-east-2.compute.amazonaws.com
~/.ssh/known_hosts:13: ec2-18-117-153-196.us-east-2.compute.amazonaws.com
~/.ssh/known_hosts:14: ec2-3-143-222-107.us-east-2.compute.amazonaws.com
~/.ssh/known_hosts:15: ec2-18-221-194-129.us-east-2.compute.amazonaws.com
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2-18-217-57-91.us-east-2.compute.amazonaws.com' (ED25519) to the list of known hosts.
Last login: Sun May 28 22:37:02 2023 from 200.118.16.101
[ec2-user@ip-172-31-18-113 ~]$
Hemos conectado satisfactoriamente vía SSH con la nueva Key pair a la instancia EC2.
Una vez ha sido probada la conexión damos nuevamente Stop a la instancia
Una vez se encuentra en Stop la instancia nuevamente realizamos Actions, Instance settings, Edit user data.
Eliminamos todo el script que se encuentra en la imagen seleccionada de la sección “Modify user data as text” y damos click en save para guardar los cambios.
Ahora volvemos a encender la instancia y de esta manera ya podemos gestionar la instancia con la nueva key pair generada.
Fuente de consulta :