GCP "Managing SSH keys in metadata" 如何在幕后运作

How does GCP "Managing SSH keys in metadata" works behind the scenes

我知道 gcp 提供了一项功能,在实例元中添加 ssh public 密钥将允许用户使用 public 密钥身份验证通过 ssh 进入机器。

但是,我很想知道 gcp 是如何做到的?

GCP 是否会在 ssh 请求到达机器之前拦截并将相关 authorized_keys 添加到我的机器中? 或者 SSH 是否提供了 GCP 用来实现此类功能的某些功能?

Google 云在 VM 启动期间运行软件(来宾代理),将 SSH 密钥从元数据服务复制到 VM。这包括创建主目录和设置 authorized_keys.

On Linux: If OS Login is not used, the guest agent will be responsible for provisioning and deprovisioning user accounts. The agent creates local user accounts and maintains the authorized SSH keys file for each. User account creation is based on adding and remove SSH Keys stored in metadata.

这个软件叫做Guest Environment

源代码发布于GitHub