GCP - sudo works in GoogleCloudShell but not when I ssh into vm
I'll give you 2 answers.
First, cloud shell is managing instance metadata for you behind the scenes, and allows passwordless sudo for all users added to the project this way. Use google to set up your user
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys https://cloud.google.com/compute/docs/instances/managing-instance-access
Add the user account you want through the project console. This will propagate that user to all hosts in your project.
Secondly, what you want is to set up passwordless sudo. You can (using visudo) edit /etc/sudoers or create a new file under /etc/sudoers.d and add a line like this:
user123 ALL = (ALL) NOPASSWD: ALL
you can see that google is doing it by group membership in the google-sudoers group
timmy@instance-1:~$ sudo cat /etc/sudoers.d/google_sudoers
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
timmy@instance-1:~$ id
uid=1000(timmy) gid=1001(timmy) groups=1001(timmy),4(adm),30(dip),44(video),46(plugdev),1000(google-sudoers)