1

У меня проблема с автоматическим извлечением для git-репозитория. Я объясняю свою ситуацию: у меня есть 2 сервера на Linux (Debian), один для репозиториев (dev01) и другой для создания документации с помощью doxygen (dev02). Я делаю скрипт в bash для запуска doxygen каждый день, и он работает нормально.

Следующим шагом будет делать git каждый день на dev02, чтобы делать репо на dev01. Я пытаюсь сделать скрипт, но когда я делаю git pull на dev02, он всегда спрашивает у меня пароль dev01, например так:

root@dev02:/repos# git pull git@dev01's password:

Я ищу решение в сети и нашел что-то (ожидаемое), чтобы сделать скрипт:

#!/usr/bin/env expect cd /repos/repos_name set password "git_password" spawn /usr/bin/git pull expect "git@dev01's password:" send "$password\r"

Он работает, но ничего не делает ... Я нашел некоторые решения в Интернете, но все, что я пытаюсь, не работает. Может быть, с Linux я могу сделать другое, чтобы решить эту проблему, но я только начинаю на этой ОС.

Как я могу решить эту проблему?

Спасибо

1 ответ1

2

Из git@dev01 , я предполагаю, что вы используете SSH. Поэтому вы можете использовать те же методы, что и для общего SSH без пароля, в частности, аутентификацию с открытым ключом. Как его настроить, было подробно описано на многих сайтах и в учебных пособиях, но вот краткое резюме:

  1. На клиенте создайте пару ключей, используя ssh-agent или PuTTYgen.

    (В этом случае root@dev02 - это клиент, а git@dev01 - это сервер.)

  2. Скопируйте открытый ключ на сервер в файл ~/.ssh/authorized_keys .

    (Скопируйте его из файла ~/.ssh/id_rsa.pub или из текста "Открытый ключ OpenSSH" из PuTTYgen.)

  3. Запустите ssh -v user@server и убедитесь, что он показывает используемый ключ:

    debug1: Authentications that can continue: publickey,password,keyboard-interactive
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /home/grawity/.ssh/id_global
    debug1: Server accepts key: pkalg ssh-rsa blen 535
    debug1: Authentication succeeded (publickey).
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .