AWS EC2 Instance: Accessing without SSH Key - Troubleshooting Guide

Recovering Access to an EC2 Instance Without SSH Key

Question

You launched an EC2 instance a month ago using your own laptop.

On the instance, you have deployed an application that you are currently working on.

The laptop has a hardware issue today, and you cannot power it up.

You are trying to use another computer to continue working on the application.

But you cannot SSH to the instance as the SSH pem file is stored only in the old laptop.

Which of the following options can help you to address the problem?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer - D.

There are multiple ways to recover the instance if the SSH key is lost.

The methods can be found in https://aws.amazon.com/premiumsupport/knowledge-center/ec2-windows-replace-lost-key-pair/ and https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair.

Option A is incorrect because the authorized_keys file is deleted.

Users still cannot SSH to it with another key.

However, you can paste an SSH public key to the authorized_keys file and then SSH to it via the private key.

Option B is incorrect because "aws ec2 import-key-pair" can import a new SSH key pair to the AWS EC2 service.

However, it cannot replace the existing SSH key pair of an EC2 instance.

Option C is incorrect because there are several ways to recover it.

Check the above references.

Option D is CORRECT because the image contains all the configurations for your application.

When a new instance is launched, you can choose a different SSH key.

Option A: Stop the instance and add a command to delete the authorized_keys file in the instance user data. Start the instance and then SSH to the instance using another key.

This option involves modifying the user data of the EC2 instance to delete the authorized_keys file, which contains the public keys of the authorized SSH users. By deleting this file, any existing SSH keys will no longer be authorized to access the instance, including the key stored on the laptop that cannot be accessed. The instance can then be started again, and a new SSH key pair can be created and used to SSH into the instance. This option may work, but it has some potential drawbacks. Deleting the authorized_keys file will remove access for any other authorized users, which could be problematic if there are other users who need access to the instance. Additionally, if the instance is running a production workload, stopping it could cause downtime or data loss.

Option B: Use AWS CLI "aws ec2 import-key-pair" to replace the SSH key pair of the EC2 instance. Use the new private key to SSH to the instance.

This option involves using the AWS CLI to replace the existing key pair associated with the instance with a new key pair. This can be done by generating a new key pair locally, importing the public key into AWS, and associating it with the EC2 instance. The new private key can then be used to SSH into the instance. This option is more targeted and less disruptive than Option A because it does not require stopping the instance or deleting any files. It also allows the instance to continue running without downtime.

Option C: There is no way to SSH to the instance if the key is lost. Use a CI/CD pipeline to create a new instance with a new key.

This option involves accepting that the existing instance cannot be accessed and instead creating a new instance with a new key pair. This can be done using a CI/CD pipeline to automate the process of launching a new instance and configuring it with the necessary software and settings. This option has the benefit of being a fully automated solution, but it also involves creating a new instance from scratch, which could be time-consuming and potentially costly.

Option D: Create an image of the EC2 instance, launch a new instance with the AMI and select a different SSH key. Use the key to SSH to the instance.

This option involves creating an image of the existing EC2 instance, which can be used to launch a new instance with the same configuration and software as the original. A new SSH key pair can then be associated with the new instance, and the old key pair can be removed. This option has the benefit of being able to recreate the same instance environment, which could be useful if there are custom settings or configurations that need to be replicated. However, it also involves creating a new instance, which could be time-consuming and costly.

Overall, Option B is the most targeted and least disruptive solution to the problem of lost SSH keys. It allows the existing instance to continue running without downtime and does not require any manual intervention or file deletion.