Я пытаюсь автоматизировать некоторые задачи при первой загрузке под управлением Ubuntu на Raspberry Pi. У меня есть сервис Systemd, который запускается один раз и убивает себя. Как часть этого, я пытаюсь обновить конфигурацию на sshd_config и перепробовал все возможные вещи, о которых я мог думать и искать в Google, но тщетно. Надеемся, что кто-то может внести свой вклад здесь с большим опытом работы с этим материалом.
# disable password login
echo "First Boot - disabling ssh password login"
sed -i 's/PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
Systemctl и Syslog не показывают ошибок в выполнении. Если я запускаю приведенную выше команду в командной строке, она ведет себя как ожидалось.
Другие вещи, которые я пробовал
Attempt 1: Assuming permission errors due to in-place sed file creation. I have routed the output to a temp file on printing the contents it looks right but the actual location i.e. /etc/ssh/sshd_config has no changes
TFILE=`mktemp --tmpdir tfile.XXXXX`
trap `rm -f $TFILE` 0 1 2 3 15
sed 's/PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config > $TFILE
cat $TFILE > /etc/ssh/sshd_config
Attempt 2: Read somewhere that /etc/ssh/sshd_config is a symlink to file in /usr and get copied over and hence executing first line copies it to /etc and changes on top
sed -i '' /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
Обновлено 23/02:
Сервисный файл
[Unit]
Description=First boot script
ConditionPathExists=/first_boot.sh
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/first_boot.sh
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target