various fixes for bullseye and new ssh key changes
[automated-distro-installer] / fai / config / hooks / instsoft.DEFAULT
index 8e9c7e579a915d9d59958cf5e49efe4d6ac18d4c..22c8104162eb6a9335f14bbc2eb712c06398eae0 100755 (executable)
@@ -3,7 +3,7 @@
 # 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
 
@@ -33,12 +33,17 @@ 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,
+# since I suspect its not needed. I'm not sure any of this is needed
+# since we initially embed the key, and with distro-begin, we run rootsshsync
+# around the same time as we remove it.
+d=/etc/initramfs-tools
+if [[ -e $d ]] && ! diff -q /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys &>/dev/null; then
+  mkdir -p $d/root/.ssh /etc/dropbear-initramfs
+  chmod 700 $d/root $d/root/.ssh
+  cp -p /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys
+  cp -p /root/.ssh/authorized_keys /etc/dropbear-initramfs
+  if [[ -e /root/.ssh/authorized_keys2 ]]; then
+    cat /root/.ssh/authorized_keys2 >>/etc/dropbear-initramfs
+  fi
+fi