Я пытаюсь написать скрипт для rsync папки на моем ноутбуке на моем NAS. Скрипт работает нормально при вызове из командной строки. Я попытался настроить скрипт для автоматического запуска с systemd. Однако есть проблема с логином ssh. Хотя он работает нормально, когда скрипт запускается из командной строки, я получаю сообщение об ошибке «Отказано в доступе».
Вот что я пытался пока сузить проблему:
Сценарий /home/tikey/scripts/nas_sync_photos_to_nas.sh
:
#!/bin/bash
set -x
ssh tikey@192.168.17.200 -v -i /home/tikey/.ssh/id_rsa ls -la rsync_laptop
Чтобы запустить скрипт с помощью systemd, я поместил файл sync-photos-to-nas.service
в ~/.config/systemd/user/
:
[Единица измерения] Описание = синхронизировать Bilder с NAS [Обслуживание] ExecStart = / дом / Tikey / скрипты / nas_sync_photos_to_nas.sh
Запуск скрипта из командной строки работает нормально. К сожалению, запуск сценария с помощью systemd не работает. Я запустил сервис systemd с systemctl --user start sync-photos-to-nas.service
. Затем, используя journalctl --user-unit sync-photos-to-nas
, я получаю:
... debug1: Хост «192.168.17.200» известен и соответствует ключу хоста RSA. debug1: найден ключ в /home/tikey/.ssh/known_hosts:2 debug1: повторный ввод после 4294967296 блоков debug1: отправлено сообщение SSH2_MSG_NEWKEYS debug1: ожидается SSH2_MSG_NEWKEYS debug1: повторный ввод после 4294967296 блоков debug1: SSH2_MSG_NEWKEYS получено debug1: SSH2_MSG_SERVICE_ACCEPT получено debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактив debug1: следующий метод аутентификации: publickey debug1: предложение открытого ключа RSA: /home/tikey/.ssh/id_rsa debug1: сервер принимает ключ: pkalg ssh-rsa blen 535 debug1: read_passphrase: невозможно открыть / dev / tty: такого устройства или адреса нет debug1: следующий метод аутентификации: клавиатура-интерактив debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактив debug1: следующий метод аутентификации: пароль debug1: read_passphrase: невозможно открыть / dev / tty: такого устройства или адреса нет debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактив В доступе отказано, пожалуйста, попробуйте еще раз. debug1: read_passphrase: невозможно открыть / dev / tty: такого устройства или адреса нет debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактив В доступе отказано, пожалуйста, попробуйте еще раз. debug1: read_passphrase: невозможно открыть / dev / tty: такого устройства или адреса нет debug1: аутентификации, которые могут продолжаться: publickey, пароль, клавиатура-интерактив debug1: больше не нужно проверять методы аутентификации. sync-photos-to-nas.service: основной процесс завершен, код = выход, статус = 255 / n / a sync-photos-to-nas.service: устройство вошло в состояние сбоя. sync-photos-to-nas.service: не удалось с результатом 'код выхода'.
Кто-нибудь знает, в чем может быть проблема?
Согласно
man ssh
, ваш аргумент неправильный в вашем вызове SSH. У вас есть это:Но в «Синопсисе» из
man ssh
этого показано, что все параметры должны идти перед «user @ host», поэтому попробуйте это:Другие детали вашей конфигурации systemd выглядят разумно.
источник
ssh myhost -v
который включит аргумент -v даже после объявления хоста.В журнале говорится, что ваш закрытый ключ зашифрован, и клиент не может использовать его, пока вы не введете ключевую фразу. Как вы говорите в своем комментарии "Ключ автоматически разблокируется при входе в систему, но, видимо, не для systemd"
Чтобы убедиться, что это сделано, вам нужно выполнить скрипт, как если бы вы вошли под своим логином.
от
man bash
:от
man systemd.exec
:источник