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访问
以下是可能对您的案例有所帮助的完整指南:
这通常是通过在创建实例后将用户添加到实例中,或者将这些用户及其密钥烘焙到用于创建实例的图像中来实现的。提供者提供的这些添加密钥的功能通常是为您提供一个初始用户,然后可以使用该用户从那里配置实例的其余部分,而不是作为成品或支持多个现成用户。