Будет ли gcloud использовать мой ключ S SH для входа в систему, или мне всегда нужно будет входить через Интернет? - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь выполнить очень простую c команду, например:

gcloud compute machine-types list 

И получаю эту ошибку:

ОШИБКА: (gcloud.compute.machine- types.list) Возникла проблема с обновлением ваших текущих токенов аутентификации: invalid_grant: Bad Request Запустите:

Он сообщает мне войти в систему, используя 'gcloud auth login', который открывает браузер.

Можно ли использовать как ключ sh, чтобы пропустить этот процесс аутентификации, или я должен делать это всегда? Ключи s sh предназначены только для доступа к экземплярам вычислений?

Просто пытаюсь понять, для чего используются ключи S SH и как эта веб-авторизация вписывается в картинку здесь.

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Обычно вы аутентифицируетесь в gcloud (и в службах GCP), используя учетные данные из учетной записи Google (часто Gmail). Такие учетные записи используют трехстороннюю (O) аутентификацию, и для этого требуется, чтобы в браузере человек подтвердил области и т. Д. c.

Если вы этого не сделали, вы должны подтвердить запрос, скопируйте предоставленный токен и вставьте его обратно в gcloud, чтобы аутентификация происходила прозрачно.

Этот процесс отличается от S SH для экземпляров Compute Engine.

Когда вы запускаете gcloud compute machine-types list, вы ' повторная аутентификация (и авторизация) Google Cloud Platform для вызова (мета) сервисов.

Когда вы запускаете gcloud compute ssh ..., команда использует s sh для подключения вас к экземпляру (Linux).

ПРИМЕЧАНИЕ gcloud auth login --no-launch-browser тоже доступно ( ссылка ). Это требует, чтобы вы отдельно запустили браузер и завершили процесс, но он не запускает браузер непосредственно из команды.

0 голосов
/ 31 мая 2020

Если вы пытаетесь автоматизировать какую-то службу, которая запускает облачные команды по запросу, без участия оператора / браузера, лучше всего будет создать учетную запись службы для этой задачи, получить ключ для этой учетной записи и активировать это, используя

gcloud auth activate-service-account --key-file=my-service-account-key-file.json 

. Если этот сервис работает на платформе Google Cloud - вам даже не нужно иметь дело с ключом. Просто свяжите учетную запись службы с запущенным вами экземпляром.

https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...