Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GCE - We are unable to connect to the VM on port 22

I'm having the following error when I try to connect via SSH to my instance on Google Compute Engine.

Connection Failed. We are unable to connect to the VM on port 22.

Steps I did to get that error

  • Created a new instance using an Ubuntu template.
  • Connected via SSH and installed all my required apps.
  • Deleted the instance but without deleting the boot disk when instance is deleted.
  • Created a new custom image using the boot disk of the deleted instance.
  • started a new instance using the custom image.
  • Click on the SSH link from the GCE console.

This is the Serial console output for the instance.

[    0.338119] Loading compiled-in X.509 certificates
[    0.339445] Loaded X.509 cert 'Magrathea: Glacier signing key: e09b1e7e9841e9cfef256b70ab210562dab1ef68'
[    0.341236] registered taskstats version 1
[    0.342183] Key type trusted registered
[    0.342872] Key type encrypted registered
[    0.343453] AppArmor: AppArmor sha1 policy hashing enabled
[    0.344592] ima: No TPM chip found, activating TPM-bypass!
[    0.345433] evm: HMAC attrs: 0x1
[    0.345974]   Magic number: 0:206:635
[    0.346956] rtc_cmos 00:00: setting system clock to 2016-01-17 13:37:20 UTC (1453037840)
[    0.348137] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[    0.349722] EDD information not available.
[    0.524305] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[    0.525744] md: Waiting for all devices to be available before autodetect
[    0.526718] md: If you don't use raid, use raid=noautodetect
[    0.527798] md: Autodetecting RAID arrays.
[    0.528396] md: Scanned 0 and added 0 devices.
[    0.529008] md: autorun ...
[    0.529414] md: ... autorun DONE.
[    0.529988] VFS: Cannot open root device "sda1" or unknown-block(0,0): error -6
[    0.530970] Please append a correct "root=" boot option; here are the available partitions:
[    0.532106] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    0.533250] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-43-generic #49~14.04.1-Ubuntu
[    0.534451] Hardware name: Google Google, BIOS Google 01/01/2011
[    0.535409]  ffffea0002edc240 ffff88012af0fdb8 ffffffff817afcd5 00000000000011ba
[    0.536095]  ffffffff81a7c8b8 ffff88012af0fe38 ffffffff817a9b15 ffff88012af0fdd8
[    0.536095]  ffffffff00000010 ffff88012af0fe48 ffff88012af0fde8 ffff88012af0fe38
[    0.536095] Call Trace:
[    0.536095]  [<ffffffff817afcd5>] dump_stack+0x45/0x57
[    0.536095]  [<ffffffff817a9b15>] panic+0xc1/0x1f5
[    0.536095]  [<ffffffff81d3e5f3>] mount_block_root+0x210/0x2a9
[    0.536095]  [<ffffffff81d3e822>] mount_root+0x54/0x58
[    0.536095]  [<ffffffff81d3e993>] prepare_namespace+0x16d/0x1a6
[    0.536095]  [<ffffffff81d3e304>] kernel_init_freeable+0x1f6/0x20b
[    0.536095]  [<ffffffff81d3d9a7>] ? initcall_blacklist+0xc0/0xc0
[    0.536095]  [<ffffffff817a01d0>] ? rest_init+0x80/0x80
[    0.536095]  [<ffffffff817a01de>] kernel_init+0xe/0xf0
[    0.536095]  [<ffffffff817b7658>] ret_from_fork+0x58/0x90
[    0.536095]  [<ffffffff817a01d0>] ? rest_init+0x80/0x80
[    0.536095] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[    0.536095] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

So my question is how can I connect via SSH to my instance and how to make sure it doesn't happen again when I create a new custom image.

Thanks.

like image 619
Yannick Morin Avatar asked Jan 17 '16 13:01

Yannick Morin


People also ask

Could not SSH into the instance?

ssh) Could not SSH to the instance. It is possible that your SSH key has not propagated to the instance yet. Try running this command again. If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.

How do I allow a port in GCP instance?

Select Allow all or Deny all , depending on the action, to have the rule apply to all protocols and destination ports. Define specific protocols and destination ports: Select tcp to include the TCP protocol and destination ports. Enter all or a comma-delimited list of destination ports, such as 20-22, 80, 8080 .

What is the ssh command to connect VM in GCP?

To connect to an instance without an external IP address, use the gcloud compute ssh command with the --internal-ip flag. In the Google Cloud console, go to the VM Instances page and find the internal IP address for the instance that you want to connect to. Connect to the instance.


1 Answers

I had the same issue with one of my GCP VM instance. My solution was:

  1. Shut down the instance
  2. Click 'Edit' for the instance
  3. Under 'Custom Metadata' section, add 'startup-script' key, with value:
#! /bin/bash
sudo ufw allow 22
  1. Click 'Save'
  2. Start the instance again, and SSH into it

Hope it helps!

like image 156
Quang Trần Avatar answered Sep 21 '22 04:09

Quang Trần