Ssh – gcloud compute ssh requires password even after using json key file for authentication

gcloudgooglegoogle-cloud-platformgoogle-compute-enginessh

Hi Google cloud experts,

I am trying to authenticate gcloud using json key and even doing everything as per docs it requires for password when I run gcloud compute ssh root@production

Here is snapshot of steps I performed.

1. Authorizing access to Google Cloud Platform with a service account

tahir@NX00510:~/www/helloworld$ gcloud auth activate-service-account 1055703200677-compute@developer.gserviceaccount.com --key-file=gcloud_key.json
Activated service account credentials for: [1055703200677-compute@developer.gserviceaccount.com]

2. Initializing the gcloud

tahir@NX00510:~/www/helloworld$ gcloud init
Welcome! This command will take you through the configuration of gcloud.

Settings from your current configuration [default] are:
compute:
  region: us-central1
  zone: us-central1-b
core:
  account: 1055703200677-compute@developer.gserviceaccount.com
  disable_usage_reporting: 'True'
  project: concise-hello-122320

Pick configuration to use:
 [1] Re-initialize this configuration [default] with new settings 
 [2] Create a new configuration
Please enter your numeric choice:  1

Your current configuration has been set to: [default]

You can skip diagnostics next time by using the following flag:
  gcloud init --skip-diagnostics

Network diagnostic detects and fixes local network connection issues.
Checking network connection...done.                                                                                                                                     
Reachability Check passed.
Network diagnostic passed (1/1 checks passed).

Choose the account you would like to use to perform operations for 
this configuration:
 [1] 1055703200677-compute@developer.gserviceaccount.com
 [2] Log in with a new account
Please enter your numeric choice:  1

You are logged in as: [1055703200677-compute@developer.gserviceaccount.com].

API [cloudresourcemanager.googleapis.com] not enabled on project 
[1055703200677]. Would you like to enable and retry (this will take a 
few minutes)? (y/N)?  N

WARNING: Listing available projects failed: PERMISSION_DENIED: Cloud Resource Manager API has not been used in project 1055703200677 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=1055703200677 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
- '@type': type.googleapis.com/google.rpc.Help
  links:
  - description: Google developers console API activation
    url: https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=1055703200677
Enter project id you would like to use:  concise-hello-122320
Your current project has been set to: [concise-hello-122320].

Do you want to configure a default Compute Region and Zone? (Y/n)?  n

Your Google Cloud SDK is configured and ready to use!

* Commands that require authentication will use 1055703200677-compute@developer.gserviceaccount.com by default
* Commands will reference project `concise-hello-122320` by default
Run `gcloud help config` to learn how to change individual settings

This gcloud configuration is called [default]. You can create additional configurations if you work with multiple accounts and/or projects.
Run `gcloud topic configurations` to learn more.

Some things to try next:

* Run `gcloud --help` to see the Cloud Platform services you can interact with. And run `gcloud help COMMAND` to get help on any gcloud command.
* Run `gcloud topic --help` to learn about advanced features of the SDK like arg files and output formatting

3. SSHing to gcloud

tahir@NX00510:~/www/helloworld$ gcloud compute ssh root@production
No zone specified. Using zone [us-central1-b] for instance: [production].
root@compute.1487950061407628967's password: 

I don't know which password should I enter here, also I believe it should not ask for password in the first place because I have used json key file for authentication.

Could you guys please help me out to fix this.

Thanks !

Best Answer

Root is not defined when using gcloud, so omit the user[root] for now. Before using

gcloud compute ssh production

Make sure you are using the correct account by using

gcloud auth list

The * will show you the active account. Keep in mind that the account you are going to log in with will be a sudo user.

Related Topic