【问题标题】:How to keep user authorized_keys files when creating instance from machine image from a different project从不同项目的机器映像创建实例时如何保留用户授权密钥文件
【发布时间】:2021-03-03 20:10:18
【问题描述】:

我有两个 GCP 项目 A 和 B,我在 B 中有一个机器映像,机器映像是从具有组用户的原始实例创建的(每个用户的主目录中都有 ~/.ssh/authorized_files )。

当我在 B 中使用此机器映像在 B 中创建一个新实例时,所有用户的授权文件都得到了保留。但是当我使用 B 中的机器映像在 A 中创建一个实例时,authorized_keys 在新实例中丢失了,除了我是 B 的所有者。

我使用的命令是:

gcloud beta 计算实例创建 new_instance --project=A --source-machine-image projects/B/global/machineImages/machine_image_name --service-account A's_service_account --network=vpc_network_in_A --subnet=subnet_in_A

为了让用户的授权文件从 B 跨到 A,我还需要在命令中添加什么?

谢谢, 菲利普

【问题讨论】:

  • 我知道我可以在 A 的元数据中添加用户的公钥,所以只要在 A 中创建了一个实例,就会从元数据中创建这些用户的 authorized_keys 文件。我只是担心这会给那些用户在 A 中的过多访问权限。理想情况下,我希望他们只能访问从机器映像创建的实例...
  • 在 B 上创建图像之前,您是否尝试过使用instance-level public SSH keys
  • 不,我以前没有这样做过,我会尝试让这个线程知道。谢谢你把它带给我。
  • 我测试了对实例使用实例级 ssh 密钥,然后从实例中创建机器映像。映像保留了用户 ssh 密钥,并且从映像创建的新实例具有用户密钥。谢谢亚历克斯 G。

标签: google-cloud-platform


【解决方案1】:

正如对该问题的评论,您将需要使用Instance-level public SSH keys 的设置来实现在图像上保留 SSH 信息的用例。但请注意,这也会阻止实例中的project-wide public SSH keys

只是在这篇文章中总结控制台的步骤。

  1. 转到虚拟机实例页面
  2. 单击实例以转到其详细信息,然后单击编辑。
  3. 在 SSH 密钥下,单击显示和编辑。 (此部分展开以显示所有实例级 SSH 公钥。)
  4. 接下来是修改实例级 SSH 公钥: 将公共 SSH 密钥添加到文本框中,然后单击添加项目。
  5. 添加密钥后,点击保存

【讨论】:

  • 这就是我所做的,它按预期工作。谢谢@Alex
猜你喜欢
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多