Điểm:3

Người dùng thêm cấu hình đám mây Ubuntu Server 20.04 không làm gì cả

lá cờ be

Tôi đang cố tạo một VirtualBox .hộp hình ảnh của Ubuntu Server 20.04 với người đóng gói. Chiếc hộp này sẽ được Vagrant sử dụng sau này. Tôi muốn có một người dùng duy nhất (lang thang) với quyền root đăng nhập qua SSH bằng cặp khóa công khai/riêng tư.

Các tập tin cấu hình như sau:

ubuntu2004.pkr.hcl:


nguồn "virtualbox-iso" "autogenerated_1" {
  boot_command = ["<enter><wait2><enter><wait><f6><esc><wait>", "autoinstall<wait2> ds=nocloud;", "<wait><enter>"]
  boot_wait = "2 giây"
  cd_files = ["./http/dữ liệu người dùng", "./http/meta-data"]
  cd_label = "dữ liệu"
  disk_size = 8192
  guest_additions_path = "VBoxGuestAdditions_{{ .Version }}.iso"
  guest_os_type = "Ubuntu_64"
  không đầu = sai
  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 shutdown -P now"
  ssh_handshake_attempts = "200"
  ssh_password = "ubuntu"
  ssh_port = 22
  ssh_username = "ubuntu"
  ssh_wait_timeout = "10000s"
  vboxmanage = [["modifyvm", "{{ .Name }}", "--memory", "1024"], ["modifyvm", "{{ .Name }}", "--cpus", "1 "]]
  virtualbox_version_file = ".vbox_version"
  vm_name = "packer-ubuntu-20.04-amd64"
}

xây dựng {
  nguồn = ["source.virtualbox-iso.autogenerated_1"]

  nhà cung cấp "tệp" {
    đích = "/home/vagrant/authorized_keys"
    nguồn = "/home/user/.ssh/virtual_id_ed25519"
  }

  nhà cung cấp "tệp" {
    đích = "/home/vagrant/.ssh/authorized_keys"
    nguồn = "/home/user/.ssh/virtual_id_ed25519"
  }

  nhà cung cấp "shell" {
    tập lệnh = ["scripts/init.sh", "scripts/cleanup.sh"]
  }

  bộ xử lý hậu kỳ "vagrant" {
    mức độ nén = "8"
    đầu ra = "ubuntu-20.04-<no value>.box"
  }
}

Yaml cấu hình đám mây như sau:

./http/dữ liệu người dùng:

#cloud-config
tự động cài đặt:
  phiên bản 1
  ngôn ngữ: en_US
  bàn phím:
    bố cục: vi
    biến thể: chúng tôi
  mạng:
    mạng:
      phiên bản: 2
      ethernet:
        enp0s3:
          dhcp4: đúng
  kho:
    cách trình bày:
      tên: lvm
  xác thực:
    tên máy chủ: ubuntu-server
    tên người dùng: ubuntu
    mật khẩu: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
  ssh:
    máy chủ cài đặt: có
  các nhóm:
    - Ubuntu: [root, sys]
    - người dùng đám mây
  người dùng:
    - mặc định
    - tên: lang thang
      ssh_authorized_keys:
        - ssh-ed25519 <<my-public-key>>
      sudo: ALL=(ALL) NOPASSWD:ALL
      nhóm: sudo, người dùng, quản trị viên
      lock_passwd: đúng
      vỏ: /bin/bash
  dữ liệu người dùng:
    vô hiệu hóa_root: sai
  gói:
    - máy chủ openssh
    - xây dựng cần thiết
  lệnh muộn:
    - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu

Tôi rõ ràng đang tải khóa công khai lên hình ảnh bằng hai tập tin nhà cung cấp. Điều này có cần thiết không?

Cấu hình trong dữ liệu người dùng nên làm theo tài liệu.

Khi Vagrant khởi động máy thì không đăng nhập được bằng SSH. Nếu tôi đăng nhập trực tiếp vào máy chủ theo cách thủ công (với Ubuntu người dùng), tôi có thể thấy rằng không có người dùng lang thang, I E. nhận mật khẩu | grep lang thang trả về không có gì.

Cho nên,

  1. Tôi nên thiết lập cấu hình đám mây như thế nào để sau khi hộp được tạo, tôi có thể đăng nhập bằng người dùng lang thang và với các khóa SSH (không có mật khẩu)?
  2. Tôi có cần người dùng không Ubuntu? Nếu không, làm thế nào tôi có thể loại bỏ nó?
  3. cái gì xác thực tham gia dữ liệu người dùng đang làm? Tôi có thể xóa mật khẩu khỏi đó, sử dụng các khóa SSH và không bận tâm đến việc tạo một người dùng mới rõ ràng bằng các khóa SSH không?

Tôi hy vọng rằng những điều này có thể được thực hiện bên trong các tệp cấu hình chứ không phải thông qua các tập lệnh shell.

Điểm:4
lá cờ jp

Nếu bạn có một xác thực phần sau đó người dùng phần không được sử dụng. Nó không được ghi lại theo cách này, vì vậy nó có thể là một lỗi.

ví dụ

Cấu hình tự động cài đặt như thế này sẽ chỉ tạo ra người ăn trộm người dùng với một mật khẩu.

#cloud-config
tự động cài đặt:
  xác thực:
    tên máy chủ: tiêu điểm-mẫu
    mật khẩu: $6$.c38i4RIqZeF4RtR$hRu2RFep/.6DziHLnRqGOEImb15JT2i.K/F9ojBkK/79zqY30Ll2/xx6QClQfdelLe.ZjpeVYfE8xBBcyLspa/
    tên người dùng: ruttiger
  dữ liệu người dùng:
    người dùng:
      - tên: lang thang
        ssh_authorized_keys:
          - ssh-rsa ĐÃ GIẤU
        lock_passwd: đúng
        vỏ: /bin/bash
        nhóm: [adm, sudo]
        sudo: ALL=(ALL) NOPASSWD:ALL

Cấu hình tự động cài đặt như thế này sẽ tạo ra lang thang người dùng có xác thực khóa SSH. (Sẽ không có Ubuntu người dùng đã tạo. Nó không bắt buộc.)

#cloud-config
tự động cài đặt:
  dữ liệu người dùng:
    người dùng:
      - tên: lang thang
        ssh_authorized_keys:
          - ssh-rsa ĐÃ GIẤU
        lock_passwd: đúng
        vỏ: /bin/bash
        nhóm: [adm, sudo]
        sudo: ALL=(ALL) NOPASSWD:ALL

Làm thế nào nó hoạt động

Trình cài đặt tạo tệp /target/etc/cloud/cloud.cfg.d/99-installer.cfg. Tệp này chứa cấu hình người dùng (và một số khác). Khi hệ thống đã cài đặt khởi động lần đầu tiên, khởi tạo đám mây sẽ bao gồm cấu hình từ tệp này và tạo (các) người dùng.

ghi chú

Tôi đã thử nghiệm bằng Ubuntu 20.04.3 (tính phổ biến 21.08.2).

Dòng này trong nguồn dường như là nơi người dùng cấu hình được thay thế bằng cấu hình được cung cấp trong xác thực tiết diện.

lá cờ be
Cảm ơn bạn! Điều này đã giải quyết vấn đề của tôi một cách hoàn hảo,

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.