Compute Engine:限制 SSH 用户名

Compute Engine:限制 SSH 用户名

我想将 OS Login 与 GCP 结合使用,因为我们使用 IAM 来限定对 GCP 内所有其他资源(存储桶、SQL、Redis 等)的访问范围。我了解如何限制用户使用服务帐户和角色访问机器。

但是,我不明白如何限制某人可能用来通过 SSH 进入我们的 Compute Engine 机器的用户名。假设我们有一个配置了 OS Login 的 VM。问题是每个人都使用 CLI 字符串进行连接,例如 gcloud compute ssh $MACHINE_NAME(可能创建然后)登录到/home/$USER_DOMAIN_SUFFIX目录。因此,团队的 shell 历史记录、相关主目录内容(下载的文件、创建的脚本等)和正在运行的进程都在不同的范围(UID)中。我们可以软强制每个人都做类似gcloud compute ssh $SPECIAL_USERNAME@$MACHINE_NAME每个人都使用相同$SPECIAL_USERNAME值的事情。但是,这并不能阻止配置新的主目录。这是一种惯例,而不是软件政策。

有没有办法实现我想要的,让我可以自由选择的值$SPECIAL_USERNAME?我不想被锁定在基于用户/服务帐户电子邮件生成的用户名中。

root由于多种原因,将 其用于一切都是不可接受的(我们希望使用非根容器运行时,并且我们希望限制由此造成的潜在损害)$SPECIAL_USERNAME

答案1

您可以在本地创建 ssh 密钥(使用任何用户名),然后通过控制台将其公共 SSH 密钥添加到 GCP 项目或实例。只需将 ssh 文件放在您计划用于访问虚拟机的每台计算机上,这将仅使用您在创建 SSH 密钥时指定的用户名。如果您在 Google Cloud 上运行 Linux 虚拟机 (VM) 实例,则可能需要共享或限制用户或应用程序对虚拟机的访问。如果您想指定用户名 USER@]INSTANCE 指定要通过 SSH 进入的实例。USER 指定要通过 SSH 进入的用户名。如果省略,则使用用户登录名。如果使用 OS Login,USER 将被 OS Login 用户替换。INSTANCE 指定要通过 SSH 进入的虚拟机实例的名称。请遵循 Google Cloud 文档指南管理元数据中的 SSH 密钥

參閱当我使用 SSH 进入 GCP 计算引擎时不创建新用户了解更多信息

相关内容