Amazon EC2, failed to ssh due to ssh server not started - amazon-ec2

I added a bad script in startup script, turned out this script is blocking and hence ubuntu instance can't boot up to ssh server and I can't ssh into it. Is there a way for me to go to the server console (like from VGA port)? like go to single-user mode or safe mode and fix it?
Thanks in advance.

I don't know of any way to obtain server console access or change boot modes on the EC2 instances...
I had the same issue sometime ago, and I ended up creating a temporary EC2 instance, mounting the root device from the original (failing) EC2 there, modifying the files, then reattaching the device and destroying the temporary instance. Note: you may end up paying more depending on which instance type you launch.

Related

How to make windows EC2 user data script NOT run when I RDP to EC2?

The user data on Windows EC2 works as expected when EC2 is launched programmatically by Lambda. However, it also executes when I manually start the machine and RDP into it for debugging/troubleshooting purposes. Is there a way to make sure it doesn't run when I start EC2 and RDP to it?
Well, EC2 user data doesn't differentiate between programmatic and manual launching. Commenting out user data script before RDP'ing into EC2 looks like the only way to prevent user data script from running.

Unreachable Amazon EC2 Instance

I have a running amazon-ec2 instance that contains a personal wiki. It has been running fine for years, and today suddenly I'm unable to logon using the private key .ppk file using either Putty or WinSCP! (An hour ago I still can!)
I was panicking and I rebooted the amazon EC2 instance. (I didn't stop and start the instance, I choose reboot).
My question is, is my data lost? And if not, how can I recover it? I can't ssh to the machine and it seems my .pem file or .ppk file which I generated long time back doesn't work anymore.
Your help is much appreciated, it saves me a lot of hard work! Thanks!
You can try starting another ec2 instance, and attaching the EBS volume(of the instance you care about) to it. Then all you have to do is to mount it and your data should be intact.
You'll have to turn off the original instance to do that first. Also, this presumes you don't have the drive encrypted.
Your data will be lost only if you used instance store. If you used EBS, your data is intact.
If you can't SSH to your server, use "AWS Systems Manager" to shell into your instance and debug SSH connection: check if sshd is up, .ssh/authorized_keys file contents and permissions, etc...

AWS EC2 Instance Hacked

One of my EC2 instances was hacked a few days ago.
I tried logging in via SSH to the server, but I couldn't connect. I am the only one with access to the private key, and I keep it in a safe place.
Luckily, I had a backup of everything and was able to move the web app to a new instance quite fast.
My concern right now is that I don't know how my instance was hacked in the first place.
Why can't I log in via SSH using my private key? I would assume that the private key stored on the server can't be (easily) deleted.
Is there a way I can find out how the hacker gained access to the instance? Perhaps a log file that would point me in the right direction.
Should I attach the EBS volume in question to a new instance and see what's on it or what are my options in this case?
Right now, it seems I have to access at all to the hacked instance.
Thank you!
#Krishna Kumar R is correct about the hacker probably changing the ssh keys.
Next steps:
Security concerns (do these now!):
Stop the instance, but don't terminate yet
Revoke/expire any sensitive credentials that were stored on the instance, including passwords and keys for other sites and services. Everything stored on that instance should be considered compromised.
Post-mortem
Take an EBS snapshot of the instance's root volume (assuming that's where logs are stored)
Make a new volume from the snapshot and attach to a (non-production) instance
Mount and start reading logs. If this is a linux host and you have port 22 open in the firewall, I'd start with /<mount-point>/var/log/auth.log
They might have logged into your machine via password. In ssh config, check the value of: PasswordAuthentication. If it is set to yes, then users can login to the instance remotely via password. Check /var/log/secure for any remote logins. It will show up all logins (password or key based).
If someone logged in as 'root', they can modify the ssh keys.
The fact that you are unable to login to the machine does not mean that it has been "hacked". It could be due to a configuration change on the instance, or the instance might have changed IP address after a stop/start.
Do a search on StackOverflow for standard solutions to problems connecting to an instance and see if you can connect (eg recheck IP address, check security group, turn on ssh -v debugging, check network connectivity & VPC settings, view Get System Log, etc).
Worst case, yes, you could:
Stop the instance
Detach the EBS volume
Attach the EBS volume to another EC2 instance
Access the content of the EBS volume

EC2 instance stopped working after creating an Image

I'm totally new to AWS.
I managed to have an instance that runs PHPMyAdmin.
then I created an image (EBS AMI) for this instant and could not connect any more to my
phpmyadmin interface.
I know it's really stupid, but I don't know why it happens.
thanks
Make sure all needed services (e.g. ssh, Apache / nginx, MySQL) on your server get started when booting. If you create an AMI of your system AWS will shut down your server for the time the image creation takes place.
So ssh into your instance, take a look at the running processes and start the ones which you miss.
If you are taking an image from the AWS console, all services will be stopped and server will be restarted for the image to be created. However, you need to restart all the services ex: mysql, apache etc.

Not able to login to my instance

I created an instance of ubuntu ec2 yesterday and I was trying to configure it and I stopped the serer before going home last night, when I tried log on to the same instance using ssh from my ubuntu I am getting an error which says connection timed out. I am not able to login to the instance now
If you stopped the instance, and the instance was ebs-backed then you should be able to start it using the ec2 api.
Describe the instance using the ec2-describe-instances/instance-attributes api and use ec2-run-instance start it. Once started, use the above api to retrieve the public dns name.
Using this you should be able to login to that same machine again.
if you have terminated an instance-store based virtual machine, then you can kiss it goodbye.

Resources