答案1
如果您使用“live-server”安装程序(下位性) 则默认设置将创建一个带有installer
随机密码的用户。该installer
用户可用于通过 SSH 访问安装程序 TUI。
取决于版本下位性随机生成的密码将打印到屏幕上或在“帮助”菜单下找到。
用户是在安装程序启动时installer
创建的。通过更改配置,可以为用户设置密码或将 SSH 密钥添加为已知内容。有几种配置方法。cloud-init
cloud-init
installer
cloud-init
使用自动安装
我已经能够installer
使用autoinstall
文件设置密码。该文件具有如下内容,用于设置密码和设置 SSH 密钥。
#cloud-config
autoinstall:
...
# set password to r00tme
chpasswd:
expire: false
list:
- installer:$6$.c38i4RIqZeF4RtR$hRu2RFep/.6DziHLnRqGOEImb15JT2i.K/F9ojBkK/79zqY30Ll2/xx6QClQfdelLe.ZjpeVYfE8xBBcyLspa/
ssh_authorized_keys:
- ssh-rsa FILLINYOUROWNKEYHERE
修改 ISO
我没有这样做过,但你可以尝试修改 ISO。installer
用户设置在/etc/cloud.cfg
文件。您可以修改此文件来定义密码或 SSH 密钥。
也可以看看
答案2
确实可以制作修改后的服务器安装程序磁盘。以下步骤基于Ubuntu LiveCD 定制说明和这个回答。或者你可以从这个 bash 脚本并根据您的需要进行修改。
下载
ubuntu-22.04.3-live-server-amd64.iso
并安装:mkdir ub && mount ubuntu-22.04.3-live-server-amd64.iso ub
使用相关安装程序信息挂载 squash 文件系统并复制它:
mkdir sqfs && mount ub/casper/ubuntu-server-minimal.ubuntu-server.installer.squashfs sqfs find sqfs -xdev -print0 | cpio -pa0V nsqfs
使用您喜欢的编辑器编辑该
cloud.cfg
文件,例如vi nsqfs/sqfs/etc/cloud/cloud.cfg
获取密码,并在此处添加您的 ssh 密钥:default_user: name: installer lock_passwd: false ... don't other stuff ... # password r00tme passwd: $6$.c38i4RIqZeF4RtR$hRu2RFep/.6DziHLnRqGOEImb15JT2i.K/F9ojBkK/79zqY30Ll2/xx6QClQfdelLe.ZjpeVYfE8xBBcyLspa/ ssh_authorized_keys: - ssh-rsa HERE_YOUR_SSH_KEY
将已安装的安装程序磁盘(只读)复制
ub
到ub_mod
:mkdir ub_mod && cd ub && tar cf - . | (cd ../ub_mod; tar xfp -) && cd ..
压缩已修改的文件:
cd nsqfs mksquashfs sqfs ../ub_mod/casper/ubuntu-server-minimal.ubuntu-server.installer.squash cd ..
更新尺寸文件:
printf $(du -sx --block-size=1 nsqfs/sqfs | cut -f1) > ub_mod/casper/ubuntu-server-minimal.ubuntu-server.installer.size
更改签名(不确定是否有必要),
local-user
用您自己的密钥替换密钥(用列出您的密钥gpg --list-secret-keys
):rm ub_mod/casper/ubuntu-server-minimal.ubuntu-server.installer.squashfs.gpg gpg --local-user 2661D59A01F3022FAFB75644F440B26DF14188A2 --output ub_mod/casper/ubuntu-server-minimal.ubuntu-server.installer.squashfs.gpg --detach-sign ub_mod/casper/ubuntu-server-minimal.ubuntu-server.installer.squashfs
重新计算 md5 校验和:
cd ub_mod rm md5sum.txt find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt cd ..
从原始 Ubuntu 安装程序磁盘中提取 MBR 和 EFI 分区。您需要根据命令的输出调整下面的
count
和字段skip
fdisk
fdisk -l ubuntu-22.04.3-live-server-amd64.iso dd bs=1 count=446 if=ubuntu-22.04.3-live-server-amd64.iso of=mbr.img dd bs=512 count=10068 skip=4156048 if=ubuntu-22.04.3-live-server-amd64.iso of=EFI.img
用于
xorriso
查找创建新启动盘所需的标志:
xorriso -indev ~ubuntu-22.04.3-live-server-amd64.iso -report_el_torito cmd
然后修改它们以引用 mbr 和 EFI。我的xorisso
行最终看起来像这样(复制到 bash 文件中以进行编辑/运行):
#!/bin/bash
xorriso -outdev hacked_installer.iso -map ub_mod / -- -volid 'Ubuntu-Server 22.04.3 LTS amd64' -volume_date uuid '2023081005062500' -boot_image grub grub2_mbr=mbr.img -boot_image any partition_table=on -boot_image any partition_cyl_align=off -boot_image any partition_offset=16 -boot_image any mbr_force_bootable=on -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b EFI.img -boot_image any appended_part_as=gpt -boot_image any iso_mbr_part_type=a2a0d0ebe5b9334487c068b6b72699c7 -boot_image any cat_path='/boot.catalog' -boot_image grub bin_path='/boot/grub/i386-pc/eltorito.img' -boot_image any platform_id=0x00 -boot_image any emul_type=no_emulation -boot_image any load_size=2048 -boot_image any boot_info_table=on -boot_image grub grub2_boot_info=on -boot_image any next -boot_image any efi_path='--interval:appended_partition_2_start_1039012s_size_10068d:all::' -boot_image any platform_id=0xef -boot_image any emul_type=no_emulation -boot_image any load_size=5154816
我唯一需要触及的字段是引用EFI.img
和mbr.img
如果一切顺利,您现在应该有一个启动盘hacked_installer.iso
,您可以使用 ssh 密钥登录