我们允许用户通过Google Cloud Platform进入虚拟机。
他的密钥被添加到VM,他可以使用
进行SSH gcloud compute ssh name-of-vm
然而,以这种方式连接将始终让gcloud尝试更新项目范围的元数据
更新项目ssh元数据...失败
失败是因为他只有权访问&管理此VM
然而非常烦人的是,每个时间他必须以这种方式连接,他必须等待GCP尝试更新元数据,这是不允许的,然后检查sshkeys机器。
是的,我们可以阻止项目范围的ssh密钥'在实例上,但这意味着其他项目管理员无法再登录。
我还尝试尽量减少对此用户的访问权限。
答案 0 :(得分:0)
Re:#1:命令上没有标志可以在每个命令级别而不是每个实例级别('block-project-ssh-keys',如你所提到的)更改此行为但是你可以提交FR https://issuetracker.google.com/savedsearches/559662。
答案 1 :(得分:0)
您可以做的是enable-oslogin for all the users you need包括管理员,在实例上启用操作系统登录会禁用这些实例上基于元数据的SSH密钥配置。
通过SSH启动,停止和连接到实例的角色是roles / compute.instanceAdmin (考虑到此角色目前处于测试阶段) you can check here a list of the Compute Engine roles available所以你可以选择最适合您需求的那个。
要将数据存储到存储桶中,我认为最合适的角色是roles/storage.objectCreator,它允许用户创建对象,但不能删除或覆盖对象。
答案 2 :(得分:0)
我发现 this 解决方案非常有用。
config
下创建一个名为 ~/.ssh
的文件nickname
更改为您喜欢的任何内容,将 $IP_OF_INSTANCE
更改为实例的公共 IP,将 $USER
更改为您的机器用户名。Host nickname
HostName $IP_OF_INSTANCE
Port 22
User $USER
CheckHostIP no
StrictHostKeyChecking no
IdentityFile ~/.ssh/google_compute_engine
现在,您可以简单地使用 SSH:
ssh nickname
请注意,Linux 和 Mac 上的路径是 ~/.ssh
,而 Windows 上的路径类似于 C:\Users\<user>\.ssh