adamant-kite-43734
07/13/2026, 12:40 PMabundant-account-48953
07/13/2026, 2:08 PM# cat /oem/90_custom.yaml
name: Harvester Configuration
stages:
after-install-chroot:
- commands:
- mkdir -p /etc/ssh/sshd_config.d
- "echo 'Subsystem\tsftp\t/usr/libexec/ssh/sftp-server' > /etc/ssh/sshd_config.d/sftp.conf"
if: '[ ! -f "/run/cos/recovery_mode" ]'
name: Run after-install-chroot commands
initramfs:
- commands:
...bumpy-portugal-40754
07/13/2026, 2:49 PMbumpy-portugal-40754
07/13/2026, 2:53 PMbumpy-portugal-40754
07/13/2026, 5:44 PMabundant-account-48953
07/14/2026, 7:10 AMabundant-account-48953
07/14/2026, 7:35 AMbumpy-portugal-40754
07/14/2026, 7:39 AMbumpy-portugal-40754
07/14/2026, 3:45 PMstages:
after-install-chroot:
- commands:
- mkdir -p /etc/ssh/sshd_config.d
- "echo 'Subsystem\tsftp\t/usr/lib/ssh/sftp-server' > /etc/ssh/sshd_config.d/sftp.conf"
I verified, that this command is executed at every reboot. Good enough as long as we're running <=1.6.1.
Now I'm ugprading to 1.7.1. The path to the sftp-server is changing, and the upgrade-node.sh script is "fixing" it at upgrade time, exactly once(!). But 90_custom.yaml is not adjusted (I assume that, I didn't test it yet, but 90_custom.yaml was never adjusted in the past, so why now?). Which means that after each reboot the wrong content is reconciled into the file, breaking the sftp feature in >=1.7.x.
I saw that you guys created github.com/harvester/harvester/issues/11153 which makes me assume that it's exactly working (or better not working) as I described above. Correct?bumpy-portugal-40754
07/14/2026, 3:48 PMbumpy-portugal-40754
07/15/2026, 1:28 PMsftp.conf file still contains the old content (/usr/lib/ssh/sftp-server instead of /usr/libexec/ssh/sftp-server). This was, sort of, expected. Even though the node-upgrade.sh probably changed it at upgrade time, the reconciliation of 90_custom.yaml at each reboot restored the old (now wrong) content. The upgrade procedure should either change 90_custom.yaml or remove it and e.g. replace it with a cloud-init resource. I created a case to track this issue.
EDIT: I tried to re-create it one more time and it didn't work. Not sure what I did wrong... either the first time or the last time. Still: The whole topic is confusing and requires attention, imho.