我无法通过浏览器或gcloud使用ssh访问我的Google云计算引擎实例。我的用户帐户具有所需的compute.instances.osLogin
权限(实际上它具有Owner
角色),我已将enable-oslogin
设置为TRUE
。
浏览器中的错误:
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
我甚至也遇到了新创建的实例的问题。
答案 0 :(得分:2)
显然将enable-oslogin
设置为TRUE
会阻止使用ssh密钥进行SSH登录,我们只能使用服务帐户来访问该实例。
我删除了项目范围内的enable-oslogin
元和特定于实例的两者,并且在浏览器和终端中都修复了登录。
编辑:GCP支持回答:
我很高兴您能够在禁用操作系统登录后通过SSH连接到您的实例。但是,您想知道可能导致此错误的原因。
从技术上讲,操作系统登录功能允许您使用IAM角色管理实例访问。但是,在实例上启用操作系统登录会禁用这些实例上基于元数据的SSH密钥配置。禁用操作系统登录可恢复已在项目或实例元数据中配置的SSH密钥。有关启用操作系统登录的更多详细信息,请参见下文。 https://cloud.google.com/compute/docs/instances/managing-instance-access#enable_oslogin