Запоминание пароля для Git при запуске под sudo -u - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть небольшой bash скрипт, который запускает экземпляр Laravel git с gitlab.com:

        sudo -u www-data git config --global credential.helper store
        sudo -u www-data php artisan down
        sudo -u www-data git pull
        sudo -u www-data composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader

Когда я запускаю это (как root или любой другой пользователь) , Я получаю сообщение об ошибке

: невозможно получить доступ к /root/.gitconfig: отказано в разрешении

предупреждение: нет доступа /root/.config/git/config ': В доступе отказано

ошибка: не удалось заблокировать файл конфигурации /root/.gitconfig: В доступе отказано

И затем он запрашивает у меня имя пользователя и пароль для gitlab. Если введено правильно, скрипт работает как положено. Как заставить мой скрипт запомнить имя пользователя и пароль - или я должен поступить по-другому? В настоящее время я захожу на сервер под именем root или другим пользователем sudoer, созданным для этой цели, потому что пользователю www-data не разрешено или не должно быть разрешено входить в систему, как я понял.

Использование клавиш S SH, похоже, не влияет на это. Они правильно настроены на моем аккаунте, но я запускаю:

root@andach-admin-demo:/var/www/html/demo# git pull
warning: redirecting to https://gitlab.com/andach/andach-admin.git/
Already up to date.
root@andach-admin-demo:/var/www/html/demo# sudo -u www-data git pull
Username for 'https://gitlab.com':

Я не понимаю, как это сделать с помощью sudo -u www-data - я думаю, что это проблема.

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Вы должны использовать s sh ключи, чтобы удивить GitLab.

Протокол S SH обеспечивает эту безопасность и позволяет вам проходить аутентификацию на удаленном сервере GitLab без указания вашего имени пользователя или пароля каждый раз.

https://docs.gitlab.com/ee/ssh/

0 голосов
/ 12 апреля 2020

Теперь вы обновили свой вопрос и перешли на использование клавиш S SH, вам также нужно обновить пульт git, чтобы использовать URL S SH, который отличается от URL-адреса HTTPS.

git remote remove origin

git remote add origin git@gitlab.com:<username>/<respository>.git

Очевидно, отрегулируйте вышеперечисленное, чтобы соответствовать вашему репозиторию.

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