更改/设置 gcloud 操作系统登录用户名?

nzm*_*man 5 google-compute-engine google-cloud-platform gcloud

这么简单的问题。

我正在向我的计算引擎添加一个新帐户。我添加了用户和角色以及所有有趣的东西。现在我想添加 ssh 密钥,我通过运行来执行此操作gcloud compute os-login ssh-keys add --key-file .....

这工作正常,它创建了正确的信息和类似的一切,我可以使用 ssh 正确登录,但是,用户名真的很长而且烦人。我知道它是由电子邮件地址生成的,但这实在是太丑陋了,而且每次我需要做一些基于用户名的事情时,输入起来都会很烦人。

无论如何,有没有办法改变这一点,而不是仅仅ext_matthias_email_com不需要matthias将“ssh 密钥”作为元数据添加到服务器?

谢谢大家

Ser*_*oza 3

使用 OS Login 时,您可以使用 username而不是用于username_domain.com 您的 G Suite 组织如果您是个人客户,则无法更改它

通常,如果您按照文档设置操作系统登录,启用操作系统登录后您将得到如下内容:

    $ gcloud compute ssh os-login-instance-1
    ...
    username_domain_com@os-login-instance-1:~$ whoami
    username_domain_com
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,根据文档,完整的电子邮件地址被转换,所有点和特殊字符被下划线替换,其主要原因是唯一性

如果 G Suite 管理员未设置用户名,OS Login 将通过组合与用户 Google 个人资料关联的电子邮件中的用户名和域来生成默认 Linux 用户名。这种命名约定确保了唯一性。例如,如果与 Google 个人资料关联的用户电子邮件为user@example.com,则其生成的用户名为user_example_com

username@domain.com becomes -> username_domain_com
Run Code Online (Sandbox Code Playgroud)

要根据文档将 username_domain_com 更改为用户名,您应该拥有 G Suite 组织:

G Suite 组织可以选择更改其默认设置,以删除新生成的用户名的域后缀。例如,如果与 Google 个人资料关联的用户电子邮件为user@example.com,则其生成的用户名为user。有关更多信息,请参阅 管理操作系统登录 API

在这里您可以找到更多详细信息为什么它会以这种方式工作:

OS Login 将您的 Linux 用户帐户与您的 Google 身份绑定在一起,以便您在登录的每个虚拟机中拥有一致的用户名、UID 和其他 posix 信息。这允许虚拟机使用 IAM 权限授权您登录,以便您可以轻松撤消访问权限。posix 信息对于消费者身份(非 G Suite 用户)来说是不可变的。这可以防止不良行为者以项目所有者无法管理的恶意方式设置信息。为了防止不同组织 (user@gmail.comuser@example.com) 之间的唯一性冲突,默认情况下包含域名。