title: Can not connect to Google Compute Engine via SSH
body: <p>I've set up a new instance of Google Compute Engine on a new project. I start the instance and use command <code>gcloud init</code> to connect to my project. I then use command <code>sudo gcloud compute ssh instance-1</code>. It takes me through SSH key pair generation:</p>
  
  <pre><code>WARNING: The private SSH key file for Google Compute Engine does not exist.
  WARNING: You do not have an SSH key for Google Compute Engine.
  WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key.
  Generating public/private rsa key pair.
  Enter passphrase (empty for no passphrase): 
  Enter same passphrase again: 
  Your identification has been saved in /Users/username/.ssh/google_compute_engine.
  Your public key has been saved in /Users/username/.ssh/google_compute_engine.pub.
  The key fingerprint is:
  SHA256:there_is_a_key_here_but_probably_should_not_show_it root@My-MacBook-Air-4.local
  The key's randomart image is:
  +---[RSA 2048]----+
  |                 |
  |                 |
  |                 |
  |                 |
  |                 |
  |                 |
  |                 |
  |There is an image|
  |here             |
  +----[SHA256]-----+
  Updating project ssh metadata...\Updated [link to the project].
  Updating project ssh metadata...done.                                                         
  Warning: Permanently added 'compute.1788786712041991164' (ECDSA) to the list of known hosts.
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  Permission denied (publickey).
  ERROR: (gcloud.compute.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.
  </code></pre>
  
  <p>Weird. I check the metadata in my Google Cloud Console, they key appeared there after running this command. So it was successfully generated and metadata was updated. 
  I wait a little bit, and try again the same command:</p>
  
  <pre><code>My-MacBook-Air-4:~ myname$ sudo gcloud compute ssh instance-1
  Permission denied (publickey).
  ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]. See https://cloud.google.com/compute/docs/troubleshooting#ssherrors for troubleshooting hints.
  </code></pre>
  
  <p>So I try some of the troubleshooting hints:</p>
  
  <pre><code>gcloud compute firewall-rules list
  
  NAME                    NETWORK  SRC_RANGES    RULES                         SRC_TAGS  TARGET_TAGS
  default-allow-http      default  0.0.0.0/0     tcp:80                                  http-server
  default-allow-https     default  0.0.0.0/0     tcp:443                                 https-server
  default-allow-icmp      default  0.0.0.0/0     icmp
  default-allow-internal  default  10.128.0.0/9  tcp:0-65535,udp:0-65535,icmp
  default-allow-rdp       default  0.0.0.0/0     tcp:3389
  default-allow-ssh       default  0.0.0.0/0     tcp:22
  </code></pre>
  
  <p>Firewall seems fine. And that happens to EVERY Google Compute Engine instance I create on ANY project. I don't understand what is going on, the key pairs have been created, I tried all of the steps several times on several different projects and the error persists. </p>
  
  <p>EDIT: The keys appeared in the SSH Tab of the project, the Metadata tab is still empty.</p>