ฉันกำลังพยายามสร้าง 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 | คนพเนจร
ไม่คืนอะไรเลย
ดังนั้น,
- ฉันจะตั้งค่า cloud-config ได้อย่างไร หลังจากที่สร้างกล่องแล้ว ฉันสามารถเข้าสู่ระบบด้วยผู้ใช้
พเนจร
และด้วยคีย์ SSH (ไม่มีรหัสผ่าน)?
- ฉันต้องการผู้ใช้หรือไม่
อูบุนตู
? ถ้าไม่ฉันจะลบออกได้อย่างไร
- อะไรคือ
ตัวตน
มีส่วนร่วมใน ข้อมูลผู้ใช้
ทำ? ฉันสามารถลบรหัสผ่านจากที่นั่น ใช้คีย์ SSH และไม่ต้องกังวลกับการสร้างผู้ใช้ใหม่ด้วยคีย์ SSH อย่างชัดเจนได้หรือไม่
ฉันหวังว่าสิ่งเหล่านี้สามารถทำได้ภายในไฟล์คอนฟิกูเรชัน ไม่ใช่ผ่านเชลล์สคริปต์