Поиск по сайту:

Как настроить SSH для экземпляра Google Cloud Platform


Google Cloud Platform — это конкурент AWS, который упрощает и удешевляет запуск виртуализированных серверов. К сожалению для новичков, у них есть новый подход к настройке SSH, который требует некоторого объяснения и настройки.

Быстрый доступ по SSH: используйте консоль

Если вам нужен быстрый доступ, самый простой способ — нажать «SSH» в консоли GCP Compute Engine. Откроется новое окно Chrome, которое передаст ключи и подключит вас к экземпляру.

Это предусмотрено, потому что настройка SSH для стороннего клиента требует больше усилий, чем вы ожидаете. Для других облачных провайдеров, таких как AWS, вы должны выбрать пару закрытых ключей, загрузить эту пару ключей и подключиться к экземпляру как обычно, используя ssh -i keyfile.

Однако GCP решает управлять ключами SSH с помощью ролей и разрешений IAM. Вместо того, чтобы загружать закрытый ключ для экземпляра, вы вместо этого предоставляете свой ключ своей учетной записи пользователя и предоставляете свой ключ экземпляру, настроив вход в ОС.

Конечно, вы всегда можете вручную добавить свой SSH-ключ в файл authorized_keys , что решит проблему, но Google настроил вход в ОС не просто так, и лучше управлять им таким образом, а не вручную переопределяя инструменты управления ключами, которые они установили.

Настройка собственных ключей с входом в ОС

Первым шагом к настройке входа в ОС является добавление ключей SSH к вашей учетной записи пользователя. Если вы управляете доступом для других людей, вы можете использовать Directory API, но если вы связываете свою учетную запись, вам нужно использовать CLI gcloud.

Загрузите установщик и запустите его. Установщик откроет новое окно, позволяющее вам войти в учетную запись Google, в которую вы хотите добавить ключи. Когда это будет сделано, выполните следующую команду в своем терминале, чтобы добавить ~/.ssh/id_rsa.pub к ключам вашей учетной записи:

gcloud compute os-login ssh-keys add 
--key-file ~/.ssh/id_rsa.pub 
--ttl 0

Вход в ОС отключен по умолчанию, поэтому вам нужно включить его либо для всего проекта, либо для определенных экземпляров. В разделе «Метаданные» консоли Compute Engine добавьте новую пару ключей с enable-oslogin в качестве ключа и TRUE в качестве значения.

Если ваша учетная запись является администратором IAM, теперь вы сможете подключаться к любым экземплярам с включенным входом в ОС, используя закрытый ключ, который вы связали со своей учетной записью.

Однако, если ваша учетная запись не является владельцем, вам потребуется несколько включенных разрешений IAM, чтобы получить доступ к экземпляру:

  • roles/compute.osAdminLogin, который предоставляет права администратора, или
  • roles/compute.osLogin, который не предоставляет права администратора.

Вы можете установить любое из этих разрешений на уровне экземпляра, используя привязки политик IAM.

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