首页 > 解决方案 > Compute Engine SSH:您没有足够的权限通过 SSH 访问此实例

问题描述

我无法通过浏览器或 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

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

标签: google-cloud-platformgoogle-compute-enginegcloud

解决方案


显然设置它可以防止使用 ssh 密钥enable-oslogin进行TRUESSH 登录,我们只能使用服务帐户来访问实例。

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

编辑:GCP 支持答案:

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

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


推荐阅读