如何防止GCE将ssh密钥复制到所有新实例?

时间:2014-02-07 16:50:53

标签: google-compute-engine

当我通过云控制台创建新的VM实例时,会自动为我在之前的实例上手动创建的用户创建homedirs,并将ssh-keys复制到各个homedirs中的~/.ssh/authorized_keys

我不想要那个!这是恕我直言,一个严重的安全漏洞。

我不希望任何用户自动创建,我不希望任何ssh密钥自动复制 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以指定特定用户和&通过设置实例级别sshKeys metadata key来用于实例的SSH密钥。您也可以使用gcutil的--authorized_ssh_keys选项从命令行执行此操作:

$ gcutil addinstance --authorized_ssh_keys=username1:/path/to/keyfile1,username2:/path/to/keyfile2,...

如果要确保没有实例获取完整的用户/密钥集,可以删除sshKeys项目级元数据密钥。在控制台中,点击Compute Engine,然后点击Metadata,然后点击sshKeys键旁边的垃圾桶图标。然后,您将需要为每个实例指定密钥,否则您将无法登录。 (这可能是你想要的完全自动化的环境)

注意:运行gcutil ssh会生成一个密钥对(如果需要),并将其添加到sshKeys密钥。

答案 1 :(得分:0)

Google会自动将这些ssh密钥添加到项目ssh-keys中。因此,您需要阻止项目范围的SSH密钥:https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#block-project-keys

您可以通过元数据来完成:

"block-project-ssh-keys": "true"