Can I SSH into my Amazon EC2 server instance if I don't have .pem file from when instance was created?
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.
- Start a new, temporary instance. Call it server-02.
- Stop server-01. Don't terminate it, just stop it.
- Un-attach the root (
/
) EBS volume from server-01, and attach it to server-02 as, say/dev/sdb
. - 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-02. - 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. - Now run:
$ cd / && umount /mnt/temp
to umount server-01's root partition from server-02. - Now, just un-attach that volume from server-02, attach it back to server-01, and then start server-01. When it starts up, you should be able to ssh in again.