Compute Engine SSH:您没有足够的权限通过 SSH 连接到此实例

Pou*_*oei 8 google-compute-engine google-cloud-platform gcloud

我无法通过浏览器或 gcloud 使用 ssh 访问我的谷歌云计算引擎实例。我的用户帐户具有所需的compute.instances.osLogin权限(实际上它具有Owner角色)并且我已设置enable-osloginTRUE.

浏览器中的错误:

You do not have sufficient permissions to SSH into this instance. You need one of compute.instances.setMetadata, compute.projects.setCommonInstanceMetadata or compute.instances.osLogin (with OsLogin enabled) and iam.serviceAccounts.actAs.

gcloud 中的错误:

ERROR: (gcloud.compute.ssh) User [my-email@gmail.com] does not have permission to access user [my-email@gmail.com:importSshPublicKey] (or it may not exist): The caller does not have permission

我什至也有新创建的实例的问题。

Pou*_*oei 9

显然设置enable-osloginTRUE它使用SSH密钥防止SSH登录,我们只能使用服务帐户访问实例。

我删除了 enable-oslogin元项目范围和特定于实例元数据,并且在浏览器和终端中都修复了登录。

编辑:GCP 支持答案:

我很高兴您能够在禁用操作系统登录后通过 SSH 连接到您的实例。但是,您想知道可能导致此错误的原因。

从技术上讲,操作系统登录功能允许您使用 IAM 角色管理实例访问。但是,在实例上启用 OS Login 会在这些实例上禁用基于元数据的 SSH 密钥配置。禁用 OS Login 会恢复您在项目或实例元数据中配置的 SSH 密钥。有关启用操作系统登录的更多详细信息,您可以在下面链接。 https://cloud.google.com/compute/docs/instances/managing-instance-access#enable_oslogin