Google Compute Engine SSH - 切换到操作系统登录后的不同用户名

Wil*_*ier 6 ssh google-compute-engine google-cloud-platform

我创建了一个 Compute Engine VM (Ubuntu 18.04),当我使用 VM 实例列表中的 SSH 按钮登录它时,我以 user 身份登录username

过了一会儿,我意识到我还需要能够使用另一个 SSH 客户端。根据https://cloud.google.com/compute/docs/instances/connecting-advanced我通过在元数据中添加一个键值对来启用 OS Login,其中 key isenable-oslogin和 value is TRUE

然后我尝试添加我现有的 SSH 密钥:

gcloud compute os-login ssh-keys add --key-file path/to/key.pub --ttl 0

除了一个主要问题外,这是成功的:它为用户添加了密钥,username_gmail_com并且只允许我以该用户的身份通过 ssh 连接到我的 VM:

ssh username_gmail_com@myinstance

它还在我的 VM 上创建了该用户。从 Web 界面,我也使用该新用户 ( /home/username_gmail_com)登录到 VM 。当然,我仍然可以访问原始用户的数据 ( /home/username)。当我禁用 OS Login 时,Web 界面将我username再次登录,并且禁用了来自另一个客户端的 SSH。

  1. 为什么启用 OS Login 时用户名不同?
  2. 我可以在启用 OS Login 的情况下更改用户名吗?

编辑

文档中增加了一个准确解释这个问题的内容。在此处查看:https : //cloud.google.com/compute/docs/oslogin/以及我在上面提到的页面底部的“预期登录行为”下方。

Wil*_*ier 3

在这里问了这个问题并得到了明确的答案。

为什么启用和禁用操作系统登录时的用户名不同?

OS Login 将您的 Linux 用户帐户与您的 Google 身份绑定在一起,以便您在登录的每个虚拟机中拥有一致的用户名、UID 和其他 posix 信息。

[...]

为了防止不同组织(user@gmail.com 和 user@example.com)之间的唯一性冲突,默认情况下包含域名。

[...]

当未启用操作系统登录时,用户名将在您的 SSH 密钥中设置,该密钥与用户的 Google 身份无关。生成用户名是为了方便,并且没有任何操作系统登录特定的问题适用。

当操作系统登录启用时,我可以影响用户名吗?

posix 信息对于消费者身份(非 G Suite 用户)来说是不可变的。

所以不,我不能,因为我是个人而不是组织。

最后,我通过简单地重新创建启用了操作系统登录的服务器来解决了这给我带来的不便——这当然是 Compute Engine 的优势之一。