¿Cómo puedo conectarme a mi instancia de Amazon EC2 si he perdido mi par de claves SSH tras el lanzamiento inicial?
Quiero conectarme a mi instancia de Amazon Elastic Compute Cloud (Amazon EC2), pero he perdido el par de claves SSH.
Descripción corta
Para conectarte a una instancia de EC2 cuando pierdes tu par de claves SSH, usa uno de los siguientes métodos:
- Introduce los datos del usuario para crear un nuevo par de claves.
- En el caso de las instancias que son nodos administrados, utiliza AWS Systems Manager para recuperar el par de claves.
- Para las instancias que ejecutan Amazon Linux 2 (AL2) versión 2.0.20190618 y posteriores o Amazon Linux 2023 (AL2023), utiliza EC2 Instance Connect.
- Si puedes acceder a tu instancia y tienes acceso a la consola serie de EC2, utiliza la consola serie.
Nota: Este método no requiere que detengas e inicies la instancia. - Crea una instancia de rescate para crear una nueva clave pública.
Importante: Antes de detener e iniciar la instancia, lleva a cabo las siguientes acciones:
- Crea una copia de seguridad de tu volumen de Amazon Elastic Block Store (Amazon EBS).
Nota: Si tu instancia está respaldada por un almacén de instancias o tiene volúmenes de almacén de instancias que contienen datos, Amazon EC2 elimina los datos cuando se detiene la instancia. - Establece el comportamiento de apagado de las instancias en Detener para asegurarte de que las instancias no finalicen cuando las detengas.
Nota: Al detener e iniciar una instancia, la dirección IP pública de la instancia cambia. Se recomienda utilizar una dirección IP elástica para enrutar el tráfico externo hacia la instancia en lugar de una dirección IP pública.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Introducción de un script de datos de usuario
Importante: No almacenes datos confidenciales en los scripts de datos de usuario. En su lugar, utiliza métodos seguros como AWS Secrets Manager.
Si tu instancia no tiene acceso a cloud-init o tienes problemas con cloud-init, continúa con Uso de una instancia de rescate.
Creación del nuevo par de claves
Sigue estos pasos:
- Crea un nuevo par de claves.
- Si creas la clave privada en la consola de Amazon EC2, recupera la clave pública del par de claves.
- Abre la consola de Amazon EC2.
- Detén tu instancia.
- Selecciona Acciones y, a continuación, selecciona Configuración de la instancia.
- Selecciona Editar datos de usuario y, a continuación, introduce el siguiente script:
Nota: Sustituye username por el nombre de usuario predeterminado o por un nombre de usuario personalizado creado anteriormente. Sustituye PublicKeypair por la clave pública. Cuando introduzcas la clave pública completa, comienza por ssh-rsa.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 - Selecciona Guardar.
- Inicia la instancia.
Confirmación de que se ha completado la fase de cloud-init
En el resultado de la consola de instancias, comprueba los siguientes factores para asegurarte de que la fase de cloud-init esté completa:
- No hay mensajes de error.
- Todas las directivas de cloud-init aparecen como ejecutadas.
- Aparece un mensaje de finalización para cloud-init similar al siguiente ejemplo: «Finished [0;1;39mCloud-init: Final Stage[0m Cloud-init v. A.B.C finished at ..».
Eliminación de los comandos de los datos de usuario de la instancia
Sigue estos pasos:
- Detén tu instancia.
- Selecciona Acciones y, a continuación, selecciona Configuración de la instancia.
- Selecciona Editar datos de usuario y, a continuación, borra todo el contenido del campo.
- Selecciona Guardar.
- Inicia la instancia.
Uso de Systems Manager
Para recuperar una instancia que sea un nodo administrado en Systems Manager, utiliza el runbook AWSSupport-ResetAccess para recuperar el par de claves. AWSSupport-ResetAccess usa EC2Rescue para generar y agregar automáticamente un nuevo par de claves SSH en la instancia.
Systems Manager cifra y guarda la nueva clave privada SSH de tu instancia en el Almacén de parámetros, una función de AWS Systems Manager como /ec2rl/openssh/instance_id/key.
Para obtener la clave SSH privada del almacén de parámetros, ejecuta el siguiente comando get-parameters de la AWS CLI:
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: Susituye instance_id por el ID de tu instancia y key-pair-name por el nombre de tu par de claves.
A continuación, crea un nuevo archivo .pem con el valor del parámetro como contenido. Usa el archivo .pem para volver a conectarte a tu instancia inaccesible.
Para convertir la clave privada en un archivo .pem, usa el siguiente comando:
ssh-keygen -f key-pair-name -e -m pem > key-pair-name.pem
Nota: Sustituye key-pair-name por el nombre de tu par de claves.
El runbook de automatización crea una copia de seguridad de imagen de máquina de Amazon (AMI) activada por contraseña. Amazon EC2 no elimina automáticamente la nueva AMI, por lo que permanece en tu cuenta de AWS.
Para localizar la AMI, sigue estos pasos:
- Abre la consola de Amazon EC2.
- Selecciona AMI.
- Introduce el ID de automatización en el cuadro de búsqueda.
Uso de EC2 Instance Connect
Para conectarte a una instancia de Amazon Linux, consulta Conexión a una instancia de Linux mediante EC2 Instance Connect.
Utilización de la consola serie de EC2
Si puedes acceder a la consola serie de EC2 para Linux, usa la consola para solucionar problemas de tipos de instancia basados en Nitro compatibles. Para obtener más información, consulta Configuración del acceso a la consola serie de EC2.
Uso de una instancia de rescate
Sigue estos pasos:
-
Inicia una instancia de rescate en la misma zona de disponibilidad que la instancia original.
-
Adjunta el volumen raíz de la instancia original a la instancia de rescate como volumen secundario.
-
Para obtener el nombre del dispositivo del volumen raíz, ejecuta el siguiente comando:
sudo lsblk -fResultado de ejemplo:
NAME FSTYPE LABEL UUID MOUNTPOINT xvda └─xvda1 xfs 1234abcd-56ef-78gh-90ij-1234klmnopqr / xvdf └─xvdf1 xfs abcd1234-ef56-gh78-ij90-qr1234klmnop -
Para montar el volumen adjunto en la instancia de rescate, ejecuta los siguientes comandos:
sudo mkdir /mnt/target sudo mount /dev/xvdf1 /mnt/targetNota: Sustituye /dev/xvdf1 por el nombre del dispositivo de volumen raíz de la instancia original.
-
Para crear una nueva clave pública, ejecuta el siguiente comando:
sudo mkdir -p /mnt/target/home/USER/.ssh echo "your_new_public_key" | sudo tee -a /mnt/target/home/USER/.ssh/authorized_keysNota: Sustituye USER por el nombre de usuario de la instancia original y your_new_public_key por tu clave pública. El nombre de la clave pública comienza por ssh-rsa.
-
Para configurar el acceso a la clave en la instancia, ejecuta el siguiente comando:
OS_USER=os-user sudo chown -R $OS_USER:$OS_USER /mnt/target/home/$OS_USER/.ssh sudo chmod 700 /mnt/target/home/$OS_USER/.ssh sudo chmod 600 /mnt/target/home/$OS_USER/.ssh/authorized_keysNota: Sustituye os-user por el nombre de usuario asociado a la AMI que utilizaste para iniciar la instancia.
-
Para desmontar el volumen, ejecuta el siguiente comando:
sudo umount /mnt/target
- Idioma
- Español

Contenido relevante
- preguntada hace un año
- preguntada hace 7 meses
- preguntada hace un año
- preguntada hace 7 meses
- preguntada hace un mes