¿Cómo puedo conectarme a mi instancia de Amazon EC2 si he perdido mi par de claves SSH tras el lanzamiento inicial?

5 minutos de lectura
0

Quiero conectarme a mi instancia de Amazon Elastic Compute Cloud (Amazon EC2), pero he perdido el par de claves SSH.

Solución

Importante:

Los métodos 1, 2 y 3 requieren detener la instancia y volver a iniciarla. Tenga en cuenta lo siguiente:

  • Si su instancia tiene una copia de seguridad en el almacén de instancias o tiene volúmenes de almacén de instancias que contienen datos, los datos se perderán si detiene la instancia. Para obtener más información, consulte Determinar el tipo de dispositivo raíz de la instancia. No olvide hacer una copia de seguridad de los datos que desee conservar en el volumen del almacén de instancias.
  • Al detener y reiniciar la instancia, la dirección IP pública de la instancia se modifica. Se recomienda utilizar una dirección IP elástica en lugar de una dirección IP pública para enrutar el tráfico externo a la instancia.

Método 1: Introducción de datos de usuario

1.    Cree un nuevo par de claves.

2.    Si crea la clave privada en la consola de Amazon EC2, recupere la clave pública del par de claves.

3.    Abra la consola de Amazon EC2.

4.    Detenga su instancia.

5.    Seleccione Acciones, Configuración de la instancia, Editar datos de usuario.

6.    Copie el siguiente script en el cuadro de diálogo Editar datos de usuario:

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

Sustituya username por su nombre de usuario, por ejemplo, ec2-user. Puede introducir el nombre de usuario predeterminado o un nombre de usuario personalizado si se ha configurado previamente para la instancia. Para obtener una lista de los nombres de usuario predeterminados, consulte Obtenga información sobre su instancia.

Sustituya PublicKeypair por la clave pública recuperada en el paso 2. Asegúrese de introducir toda la clave pública, empezando por ssh-rsa.

7.    Seleccione Guardar.

8.    Inicie su instancia.

9.    Una vez finalizada la fase de inicio en la nube, compruebe que se haya reemplazado la clave pública.

Importante: Dado que el script contiene un par de claves, elimínelo del campo Datos de usuario.

10.    Detenga su instancia.

11.    Seleccione Acciones, Configuración de la instancia, Editar datos de usuario.

12.    Borre todo el texto del cuadro de diálogo Editar datos de usuario y, a continuación, seleccione Guardar.

13.    Inicie su instancia.

Método 2: Utilización de AWS Systems Manager

Si su instancia es una instancia administrada en AWS Systems Manager, utilice el documento AWSSupport-ResetAccess para recuperar el par de claves perdido. AWSSupportResetAccess genera y añade automáticamente un nuevo par de claves SSH (pública/privada) mediante la herramienta EC2 Rescue para Linux en la instancia de EC2 especificada.

La nueva clave SSH privada de su instancia se cifra y se guarda en el Almacén de parámetros, una función de AWS Systems Manager. El nombre del parámetro es /ec2rl/openssh/instance_id/key.

Utilice el siguiente comando para recuperar la clave SSH privada del Almacén de parámetros:

$ aws ssm get-parameters --names "/ec2rl/openssh/instance_id/key" --with-decryption --output json --query  "Parameters[0].Value" | sed 's:\\n:\n:g; s:^"::; s:"$::' >  key-pair-name

Nota: Asegúrese de sustituir instance_id por el ID de su instancia y key-pair-name por el nombre de su par de claves.

A continuación, cree un nuevo archivo .pem con el valor de este parámetro como contenido y utilícelo para volver a conectarse a la instancia inaccesible. Utilice el siguiente comando para convertir la clave privada en un archivo .pem:

$ ssh-keygen -f key-pair-name -e -m pem > key-pair-name.pem

Nota: Asegúrese de sustituir key-pair-name por el nombre de su par de claves.

El flujo de trabajo de automatización crea una copia de seguridad de la imagen de máquina de Amazon (AMI) con contraseña. La nueva AMI no se elimina automáticamente y permanece en su cuenta.

Para localizar estas AMI:

1.    Abra la consola de Amazon EC2 y, a continuación, seleccione AMI.

2.    Introduzca el ID de ejecución de la automatización en el cuadro de búsqueda.

Método 3: Utilización de Amazon EC2 Instance Connect

Si la versión de su instancia es Amazon Linux 2 2.0.20190618 o posterior, incluida Amazon Linux 2023, puede usar EC2 Instance Connect para conectarse a la instancia.

Método 4: Utilización de la consola serie de EC2

Si ha activado la consola serie de EC2 para Linux, puede utilizarla para solucionar problemas con los tipos de instancias basadas en Nitro compatibles. La consola serie le ayuda a solucionar problemas de arranque, configuración de red y configuración de SSH. La consola serie se conecta a su instancia sin necesidad de tener una conexión de red en funcionamiento. Puede acceder a la consola serie mediante la consola de Amazon EC2 o la Interfaz de la línea de comandos de AWS (AWS CLI).

Antes de utilizar la consola serie, concédale acceso en el nivel de cuenta. A continuación, cree políticas de AWS Identity and Access Management (IAM) que concedan acceso a sus usuarios de IAM. Además, cada instancia que use la consola serie debe incluir al menos un usuario con contraseña. Si no puede alcanzar su instancia y no ha configurado el acceso a la consola serie, siga las instrucciones del Método 1, el Método 2 o el Método 3. Para obtener más información sobre cómo configurar la consola serie de EC2 para Linux, consulte Configurar el acceso a la consola serie de EC2.

Nota: Si se muestran errores al ejecutar comandos de AWS CLI, compruebe si está utilizando la versión más reciente de AWS CLI.

Información relacionada

Ejecutar comandos en la instancia de Linux durante el lanzamiento

AWS Systems Manager Automation

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años