Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GCP Terraform-不使用sudo导入ssh密钥_Google Cloud Platform_Terraform_Terraform Provider Gcp - Fatal编程技术网

Google cloud platform GCP Terraform-不使用sudo导入ssh密钥

Google cloud platform GCP Terraform-不使用sudo导入ssh密钥,google-cloud-platform,terraform,terraform-provider-gcp,Google Cloud Platform,Terraform,Terraform Provider Gcp,嘿,我刚刚得到了使用导入的ssh密钥创建Compute实例的工作代码。它工作得很好,但是terraform创建的每个帐户都有一个sudo访问权限。是否可以为某些密钥创建sudo帐户,而不为其他密钥创建sudo帐户 resource "google_compute_instance" "default" { name = "proxy" machine_type = "f1-micro"

嘿,我刚刚得到了使用导入的
ssh密钥创建
Compute实例的工作代码。它工作得很好,但是terraform创建的每个帐户都有一个
sudo
访问权限。是否可以为某些密钥创建
sudo
帐户,而不为其他密钥创建sudo帐户

resource "google_compute_instance" "default" {
  name         = "proxy"
  machine_type = "f1-micro"
  
  boot_disk {
    initialize_params {
      image = "centos-cloud/centos-8"
    }
  }
  // Loading keys from file
  metadata = {
    ssh-keys = file("./scripts/keys.pub")
  }

  network_interface {
    network = google_compute_network.network.id
    subnetwork = google_compute_subnetwork.subnetwork.id


    access_config {

    }
  }

  metadata_startup_script = data.template_file.squid_install_script.rendered

  tags = ["proxy"]
}

我的代码片段贴在上面。任何提示?

在创建单独的ssh密钥(一个用于sudo用户,另一个用于非sudo用户)后,似乎需要在gcloud控制台编辑ssh密钥元数据:

要使用gcloud工具添加或删除项目范围的公共SSH密钥,请执行以下操作:

如果您的项目已经具有项目范围的公共SSH密钥,请从元数据获取这些公共SSH密钥:

获取项目的现有元数据:

gcloud compute project-info describe
从输出中,找到ssh密钥元数据值:

注意:如果您的实例没有现有的项目范围的公共ssh密钥,则不会显示ssh密钥元数据值。或者,您的项目范围的公共SSH密钥可能位于不推荐使用的sshKeys元数据值之下

...
metadata:
  fingerprint: QCofVTHlggs=
  items:
  - key: ssh-keys
    value: |-
      [USERNAME_1]:ssh-rsa [EXISTING_KEY_VALUE_1] [USERNAME_1]
      [USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
...
其中:

[USERNAME\u 1]
[USERNAME\u 2]
是现有密钥的用户名。
[现有密钥\u值\u 1]
[现有密钥\u值\u 2]
是已应用于项目的公钥值。例如,键1可能包含sudo和键2非sudo访问

以下是可能对您的案例有所帮助的完整指南:


这通常是通过在创建实例后将用户添加到实例中,或者将这些用户及其密钥烘焙到用于创建实例的图像中来实现的。提供者提供的这些添加密钥的功能通常是为您提供一个初始用户,然后可以使用该用户从那里配置实例的其余部分,而不是作为成品或支持多个现成用户。