X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fhooks%2Finstsoft.DEFAULT;h=5c7be4e777a920f327931cab7d82a57050eeb2dd;hb=137ffae7de84a51c4b438ccf2fb50f5571f522a6;hp=8e9c7e579a915d9d59958cf5e49efe4d6ac18d4c;hpb=cef9b6ede5c1e028bed1b4dc7895f5dfa121ad6b;p=automated-distro-installer diff --git a/fai/config/hooks/instsoft.DEFAULT b/fai/config/hooks/instsoft.DEFAULT index 8e9c7e5..5c7be4e 100755 --- a/fai/config/hooks/instsoft.DEFAULT +++ b/fai/config/hooks/instsoft.DEFAULT @@ -3,7 +3,11 @@ # These are things we can do before package_config packages get installed. # exit for any vm except demohost, or if we are doing a dirinstall -if ifclass VM && ! ifclass demohost || ifclass VOL_STRETCH_BOOTSTRAP || [[ ! $FAI_ACTION || $FAI_ACTION = dirinstall ]]; then +if ifclass VM && ! ifclass demohost || ifclass VOL_BULLSEYE_BOOTSTRAP || [[ ! $FAI_ACTION || $FAI_ACTION = dirinstall ]]; then + exit 0 +fi + +if ifclass FSF; then exit 0 fi @@ -33,12 +37,21 @@ if [[ ${files[0]} ]]; then fi -#### this bit is duplicated in rootsshsync -f=/var/lib/fai/config/files/root/.ssh/authorized_keys/STANDARD -d=$target/etc/initramfs-tools -d2=$target/etc/dropbear-initramfs -mkdir -p $d/root/.ssh $d2 -chmod 700 $d/root $d/root/.ssh -# i think buster uses the second, flidas uses the first. -cp -p $f $d/root/.ssh/authorized_keys -cp -p $f $d2/authorized_keys +#### This bit is duplicated in rootsshsync, except we skip +#### update-initramfs and add $target +#### +# We generally shouldn't need this, because we don't ssh in on the 1st +# reboot since we initially embed the luks key, and with distro-begin, +# we run rootsshsync around the same time as we remove it. However, it +# could be helpful in case of problems. + +auth_dir=$target/etc/dropbear/initramfs/ +candidate=$(apt-cache policy dropbear-initramfs | awk '$1 == "Candidate:" { print $2 }' | head -n1 ||:) +if [[ $candidate ]] && dpkg --compare-versions "$candidate" lt 2020.81-4; then + auth_dir=$target/etc/dropbear-initramfs +fi +auth_file=$auth_dir/authorized_keys +mkdir -p $auth_dir +if [[ ! -e $auth_file ]] || ! diff -q /root/.ssh/authorized_keys $auth_file; then + cp -p /root/.ssh/authorized_keys $auth_file +fi