Find the instance in the Web Console (
https://console.cloud.google.com/compute/instances), click on its name. First of all, near the bottom of the page, there is a check box "Block project-wide keys." Make sure it's NOT checked, since you are using keys from the project-level metadata.
From the same page you can normally see the instance's console log (default images route kernel and daemon logs there). The link "Serial port 1 (console)" is near the very top, under "Logs." This often provides a clue.
I have little experience with Putty; I do not know if you can trust
that "Server refused Key" implies that it was
in fact able to establish a TCP connection, but the key was refused. You can try connecting from a Linux client in the Cloud Shell (
https://cloud.google.com/shell). Generate a new keypair with
ssh-keygen and use its public part. The command
ssh -v -f <private-key-filename> <username>@<ip-address> will give you debug information. You can increase logging level by using "-vv" or even "-vvv" in place of "-v", but that may or may not be useful, depending on your knowledge of the SSH protocol.
Be sure to generate a new keypair with ssh-keygen, do not upload the one you've created: Last time I used Putty, many years ago, it's key generator (Puttygen, I think?) stored private keys in a format that was incompatible with OpenSSH client. It may still be the case, or may have changed.
ssh-keygen is a tool that comes with OpenSSH, and is indeed 100% compatible with it.
>
I wouldn't want to reset my VM machine as I will lose my data on it.
It's not clear what do you mean by "reset". You can always detach the disk from your VM, attach it as a second disk to a fresh VM instance, mount and access your data, as a last-resort measure. Depending on what the "data" is, it may be time-consuming to put it back in order. Be sure to create a snapshot of the disk before doing anything else (
https://cloud.google.com/compute/docs/disks/create-snapshots). Best of all snapshot the disk while the VM is powered off, for data consistency. If you need the VM be online while you are recovering data (if it's a web server , for example, and you do not want to power if off to steal its disk), you may create an exact copy of the disk from the snapshot, and recover from it. Hope you won't have to, tho.
Good luck,
-kkm