Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am working with some Amazon EC2 servers that are up and running, and I need to SSH into the servers. I don't have any keys that were generated when the servers were first set up (someone else did it long before I got here). Can I still get into the servers without the key files?

FWIW I've tried a lot of things to SSH into the box so far, including generating new key pairs in the EC2 dashboard, and nothing seems to be working. This Amazon AWS support post and this answer seem to indicate that I'm out of luck unless I want to make an AMI of my current server and then use it to instantiate a whole new EC2 server instance (just to get the .pem file generated at that time). Is that really the only way I can get into the box at this point?!

share|improve this question

1 Answer 1

up vote 14 down vote accepted

In short: Yes, you can, but not without some work.

You'll need to do the following:

(For these steps, assume that the machine you're having trouble connecting to is called server-01.)

First, before starting these steps, take a snapshot of your server.

  1. Start a new, temporary instance. Call it server-02.
  2. Stop server-01. Don't terminate it, just stop it.
  3. Un-attach the root (/) EBS volume from server-01, and attach it to server-02 as, say /dev/sdb.
  4. Sign into server-02, and run: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. This will mount server-01's root partition within the temporary server.
  5. Now you should be able to: $ vi /home/<user>/.ssh/authorized_keys and copy/paste in your public key. When you've done that, save and close the file.
  6. Now run: $ cd / && umount /mnt/temp to umount server-01's root partition.
  7. Now, just un-attach that volume from server-01, attach it back to server-01, and then start server-01. When it starts up, you should be able to ssh in again.
share|improve this answer
    
Just to add to this excellent answer, I found this blog post which walks through doing it from the command line. alestic.com/2011/02/ec2-fix-ebs-root –  Eric Feb 26 '13 at 5:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.