Как вытащить из git при загрузке, используя Ubuntu (systemd), Github и S SH ключи - PullRequest
0 голосов
/ 08 марта 2020

Я настроил его, чтобы авторизоваться на Github с помощью клавиш sh. Я перепробовал все, и это, кажется, работает. Итак, теперь я хочу, чтобы мое приложение запускалось каждый раз при загрузке компьютера, поэтому я создаю следующую конфигурацию systemd ...

[Unit]
Description=Job that runs your user script

[Service]
WorkingDirectory=/.../web/site
ExecStart=npm start
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Опять все работает. Теперь я хочу вытащить каждый раз, когда я загружаюсь, прежде чем начать, поэтому я изменяю на ...

[Unit]
Description=Job that runs your user script

[Service]
WorkingDirectory=/.../web/site
ExecStart=git pull
ExecStart=npm start
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Но теперь это не удается с ...

Mar 08 05:45:21 debdev systemd[1]: Starting Job that runs your user script...
Mar 08 05:45:21 debdev git[731]: Host key verification failed.
Mar 08 05:45:21 debdev git[731]: fatal: Could not read from remote repository.
Mar 08 05:45:21 debdev git[731]: Please make sure you have the correct access rights
Mar 08 05:45:21 debdev git[731]: and the repository exists.
Mar 08 05:45:21 debdev systemd[1]: node-site.service: Main process exited, code=exited, status=1/FAILURE
Mar 08 05:45:21 debdev systemd[1]: node-site.service: Failed with result 'exit-code'.
Mar 08 05:45:21 debdev systemd[1]: Failed to start Job that runs your user script.

Чего мне не хватает? Это потому, что мой ключ S SH находится под моим пользователем? Могу ли я сделать ключ "root" sh?

1 Ответ

1 голос
/ 08 марта 2020

Это:

Host key verification failed.

- проблема с аутентификацией удаленного репозитория, в вашем случае Github. Это вероятно, поскольку при загрузке системы вы работаете как root, а не как обычный пользователь, которым вы были, когда настраивали пару ключей. Чтобы это исправить, вы можете указать файл идентификации напрямую. Чтобы сделать это одноразовым способом и не добавлять второй файл идентификации для вашего root (что вы могли бы и без особых усилий, как вы сделали для своего пользователя), вы можете вместо этого запустить

ssh-agent bash -c 'ssh-add /path/to/id_rsa; git pull'

Чтобы не перезагружать / перезапускать службы, пока вы исправляете это, я предлагаю вам попробовать и исправить команду git pull как root, и когда это сработает, попробуйте ее в вашем systemd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...