Score:3

การเพิ่มผู้ใช้ Ubuntu Server 20.04 cloud-config ไม่ได้ทำอะไรเลย

ธง be

ฉันกำลังพยายามสร้าง VirtualBox .กล่อง รูปภาพของ Ubuntu Server 20.04 พร้อม ผู้บรรจุหีบห่อ. กล่องนี้จะใช้โดย Vagrant ในภายหลัง ฉันต้องการมีผู้ใช้คนเดียว (พเนจร) ที่มีสิทธิ์ root ที่เข้าสู่ระบบผ่าน SSH ด้วยคู่คีย์สาธารณะ/ส่วนตัว

ไฟล์การกำหนดค่ามีดังนี้:

ubuntu2004.pkr.hcl:


แหล่งที่มา "virtualbox-iso" "autogenerated_1" {
  boot_command = ["<enter><wait2><enter><wait><f6><esc><wait>", "autoinstall<wait2> ds=nocloud;", "<wait><enter>"]
  boot_wait = "2 วินาที"
  cd_files = ["./http/user-data", "./http/meta-data"]
  cd_label = "ซิดาต้า"
  disk_size=8192
  guest_additions_path = "VBoxGuestAdditions_{{ .Version }}.iso"
  guest_os_type = "อูบุนตู_64"
  หัวขาด = เท็จ
  http_directory = "http"
  iso_checksum = "sha256:f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98"
  iso_urls = ["https://releases.ubuntu.com/focal/ubuntu-20.04.3-live-server-amd64.iso"]
  shutdown_command = "echo 'ubuntu'|sudo -S ปิด -P ทันที"
  ssh_handshake_attempts = "200"
  ssh_password = "อูบุนตู"
  ssh_port = 22
  ssh_username = "อูบุนตู"
  ssh_wait_timeout = "10,000 วินาที"
  vboxmanage = [["modifyvm", "{{ .Name }}", "--memory", "1024"], ["modifyvm", "{{ .Name }}", "--cpus", "1 "]]
  virtualbox_version_file = ".vbox_version"
  vm_name = "แพ็คเกอร์อูบุนตู-20.04-amd64"
}

สร้าง {
  แหล่งที่มา = ["source.virtualbox-iso.autogenerated_1"]

  ผู้จัดเตรียม "ไฟล์" {
    ปลายทาง = "/home/vagrant/authorized_keys"
    แหล่งที่มา = "/home/user/.ssh/virtual_id_ed25519"
  }

  ผู้จัดเตรียม "ไฟล์" {
    ปลายทาง = "/home/vagrant/.ssh/authorized_keys"
    แหล่งที่มา = "/home/user/.ssh/virtual_id_ed25519"
  }

  ผู้จัดเตรียม "เชลล์" {
    สคริปต์ = ["สคริปต์/init.sh", "สคริปต์/cleanup.sh"]
  }

  ตัวประมวลผลหลัง "คนจรจัด" {
    การบีบอัด_ระดับ = "8"
    เอาต์พุต = "ubuntu-20.04-<ไม่มีค่า>.box"
  }
}

cloud-config yaml เป็นดังนี้:

./http/ข้อมูลผู้ใช้:

#cloud-config
ติดตั้งอัตโนมัติ:
  รุ่น: 1
  ภาษา: en_US
  แป้นพิมพ์:
    รูปแบบ: th
    ตัวแปร: เรา
  เครือข่าย:
    เครือข่าย:
      รุ่น: 2
      อีเธอร์เน็ต:
        enp0s3:
          dhcp4: จริง
  พื้นที่จัดเก็บ:
    รูปแบบ:
      ชื่อ: lvm
  ตัวตน:
    ชื่อโฮสต์: เซิร์ฟเวอร์ Ubuntu
    ชื่อผู้ใช้: อูบุนตู
    รหัสผ่าน: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
  ssh:
    ติดตั้งเซิร์ฟเวอร์: ใช่
  กลุ่ม:
    - อูบุนตู: [root, sys]
    - ผู้ใช้คลาวด์
  ผู้ใช้:
    - ค่าเริ่มต้น
    - ชื่อ: คนจรจัด
      ssh_authorized_keys:
        - ssh-ed25519 <<คีย์สาธารณะของฉัน>>
      sudo: ALL=(ทั้งหมด) NOPASSWD:ทั้งหมด
      กลุ่ม: sudo, ผู้ใช้, ผู้ดูแลระบบ
      lock_passwd: จริง
      เชลล์: /bin/bash
  ข้อมูลผู้ใช้:
    ปิดการใช้งาน_root: เท็จ
  แพ็คเกจ:
    - opensh-เซิร์ฟเวอร์
    - สิ่งจำเป็นสำหรับการสร้าง
  คำสั่งล่าช้า:
    - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu

ฉันกำลังอัปโหลดรหัสสาธารณะไปยังรูปภาพอย่างชัดเจนด้วยทั้งสอง ไฟล์ ผู้จัดเตรียม สิ่งนี้จำเป็นหรือไม่?

การกำหนดค่าใน ข้อมูลผู้ใช้ ควรปฏิบัติตาม เอกสาร.

เมื่อ Vagrant เริ่มเครื่อง มันไม่สามารถเข้าสู่ระบบด้วย SSH หากฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วยตนเองโดยตรง (ด้วยไฟล์ อูบุนตู ผู้ใช้) ฉันเห็นว่าไม่มีผู้ใช้ พเนจร, เช่น. รับรหัสผ่าน wd | คนพเนจร ไม่คืนอะไรเลย

ดังนั้น,

  1. ฉันจะตั้งค่า cloud-config ได้อย่างไร หลังจากที่สร้างกล่องแล้ว ฉันสามารถเข้าสู่ระบบด้วยผู้ใช้ พเนจร และด้วยคีย์ SSH (ไม่มีรหัสผ่าน)?
  2. ฉันต้องการผู้ใช้หรือไม่ อูบุนตู? ถ้าไม่ฉันจะลบออกได้อย่างไร
  3. อะไรคือ ตัวตน มีส่วนร่วมใน ข้อมูลผู้ใช้ ทำ? ฉันสามารถลบรหัสผ่านจากที่นั่น ใช้คีย์ SSH และไม่ต้องกังวลกับการสร้างผู้ใช้ใหม่ด้วยคีย์ SSH อย่างชัดเจนได้หรือไม่

ฉันหวังว่าสิ่งเหล่านี้สามารถทำได้ภายในไฟล์คอนฟิกูเรชัน ไม่ใช่ผ่านเชลล์สคริปต์

Score:4
ธง jp

หากคุณมี ตัวตน ส่วนแล้ว ผู้ใช้ ส่วนที่ไม่ได้ใช้งาน มันไม่ได้บันทึกไว้ด้วยวิธีนี้ ดังนั้นจึงน่าจะเป็นจุดบกพร่อง

ตัวอย่าง

การกำหนดค่าการติดตั้งอัตโนมัติเช่นนี้จะสร้างเฉพาะ รัท ผู้ใช้ด้วยรหัสผ่าน

#cloud-config
ติดตั้งอัตโนมัติ:
  ตัวตน:
    ชื่อโฮสต์: เทมเพลต focallive
    รหัสผ่าน: $6$.c38i4RIqZeF4RtR$hRu2RFep/.6DziHLnRqGOEImb15JT2i.K/F9ojBkK/79zqY30Ll2/xx6QClQfdelLe.ZjpeVYfE8xBBcyLspa/
    ชื่อผู้ใช้: ruttiger
  ข้อมูลผู้ใช้:
    ผู้ใช้:
      - ชื่อ: คนจรจัด
        ssh_authorized_keys:
          - ssh-rsa ปกปิด
        lock_passwd: จริง
        เชลล์: /bin/bash
        กลุ่ม: [adm,sudo]
        sudo: ALL=(ทั้งหมด) NOPASSWD:ทั้งหมด

การกำหนดค่าการติดตั้งอัตโนมัติเช่นนี้จะสร้าง พเนจร ผู้ใช้ที่มีการรับรองความถูกต้องของคีย์ SSH (คงไม่มี อูบุนตู ผู้ใช้สร้างขึ้น ไม่จำเป็น)

#cloud-config
ติดตั้งอัตโนมัติ:
  ข้อมูลผู้ใช้:
    ผู้ใช้:
      - ชื่อ: คนจรจัด
        ssh_authorized_keys:
          - ssh-rsa ปกปิด
        lock_passwd: จริง
        เชลล์: /bin/bash
        กลุ่ม: [adm,sudo]
        sudo: ALL=(ทั้งหมด) NOPASSWD:ทั้งหมด

มันทำงานอย่างไร

โปรแกรมติดตั้งสร้างไฟล์ /target/etc/cloud/cloud.cfg.d/99-installer.cfg. ไฟล์นี้มีการกำหนดค่าผู้ใช้ (และอื่น ๆ ) เมื่อระบบที่ติดตั้งบู๊ตเป็นครั้งแรก cloud-init จะรวมการกำหนดค่าจากไฟล์นี้และสร้างผู้ใช้

หมายเหตุ

ฉันทดสอบโดยใช้ Ubuntu 20.04.3 (ความย่อย 21.08.2).

บรรทัดนี้ในแหล่งที่มา ดูเหมือนจะเป็นที่ที่ ผู้ใช้ การกำหนดค่าจะถูกแทนที่ด้วยการกำหนดค่าที่ระบุใน ตัวตน ส่วน.

be flag
ขอขอบคุณ! สิ่งนี้แก้ปัญหาของฉันได้อย่างสมบูรณ์แบบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา