Google compute - SSH - port 22 blocked by ufw
Solution 1:
By Default, all ports are blocked other than port 22 to allow you to ssh to the VM instance. You also have the option to open port 80 and/or 443. You can see which ports are open by default by checking the Firewall rules within the Cloud Console. I am mentioning this to inform you that you do not need to install ufw in the future.
You will have to provide a startup script to the VM instance to enable SSH. You can just create a simple bash script with either command listed below.
$ufw allow ssh
or
ufw allow 22
You do not have to use the sudo prefix since the startup script runs as root already.
Solution 2:
Just complimenting the accepted answer.
Some are asking how you can include a start-up script on a VM that you can't even SSH into. You can accomplish this by:
- Navigate to the GCP Console under your VM instance
- Stop your VM Instance
- Click Edit
Under custom meta-data, add the key
startup-script
and the value:#! /bin/bash sudo ufw allow 22
Hope this clears some of the confusion :)