'enable firewall port 22 on ec2 server after disable it
Step error: 1. sudo ufw enable 2. Command may disrupt existing ssh connections. Proceed with operation (y|n)? y 3. exit Before ssh again and can not access. On Security Group, port 22 is opening But firewall disable port 22. How to access server again?
Solution 1:[1]
You could use the following Simplest way (user-data) to turn off the ufw.
- Stop the instance
- In
Instance Settings
,View/Change User Data
- Copy and Set the below user data as plain text and save
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:
- [scripts-user, once]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
sudo ufw disable
--//
- Start the instance
You will be able to SSH into your server now as ufw is disabled. You might want to stop the instance and remove user data and start it again.
Solution 2:[2]
At this point, there is nothing you can do to get back into the machine. It seems (from your comments) that ufw automatically starts and you have not added a rule to it to allow SSH traffic.
What you can do to recover data is
- shut down the EC2 instance,
- detach the EBS volume,
- launch a different EC2 instance,
- log into it,
- mount the EBS volume and
- copy the data to the new instance
Solution 3:[3]
Simple step to step working Solution:
This error comes when you allow ufw and enable it on ec2.
Stop the Instance
Go to Action > Instance Setting > Edit User Data
And make sure to choose As Text in Edit User Data Screen
- Add below commands
#!/bin/bash
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw allow 80
sudo ufw status
sudo ufw enable
Now start the Instance And check that it is on Running State
check your public IP (This has been changed after restart)
Now finally connect to the instance using ssh :
ssh -i <username>@<ip-address>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | 0x90 |
Solution 3 |