У меня есть простая флеш-приложение, которая ждет веб-узлов из моего хоста хранилища. Webhook запускает git.pull()
последней версии из предопределенного репозитория, используя gitpython
. gitpython
код что-то вроде:SSID идентификационный ключ игнорируется при использовании gitpython под супервизором
import git
repo_dir = '/path/to/repo'
g = git.cmd.Git(repo_dir)
g.pull()
приложение запускается с супервизора сценария, как пользователь, admin
, чей SSH id_rsa.pub
открытый ключ зарегистрирован в хранилище в качестве ключа развертывания.
При входе в систему как зарегистрированный пользователь, admin
, приложение может быть запущено из командной строки и может успешно выйти из частного репозитория. Когда приложение запускается с supervisor
, однако, git.pull()
операция завершается с ошибкой SSH Идент:
Permission denied (publickey). fatal: Could not read from remote repository.
Я могу подтвердить, пользователю запуск supervisor
удалось приложение правильно (admin
). Это означает, что сценарий супервизора не использует ключ SSH по умолчанию для одного и того же пользователя.
Я видел некоторую ссылку на установку одной из нескольких переменных окружения, GIT_SSH_COMMAND
или устаревшего GIT_SSH
. Я попытался установить эти значения как для замены строк ssh (т.е. GIT_SSH_COMMAND='ssh -i /path/to/key'
), так и для исполняемых файлов (то есть GIT_SSH='/path/to/myssh'
), но безрезультатно.
Кто-нибудь сталкивался с чем-то вроде этого? Это неожиданная проблема, что у меня проблемы с отладкой.
AttributeError: должен быть установлен 'Git' объект атрибута 'USE_SHELL' только для чтения – SunPowered
атрибутом 'USE_SHELL' перед тем инстанцировании. Но все тот же вопрос выше, git pull терпит неудачу. – SunPowered