[英]SSH identity key ignored when using gitpython under supervisor
我有一個簡單的Flask應用程序,等待來自存儲庫主機的webhooks。 git.pull()
使用gitpython
從預定義的存儲庫中觸發最新修訂版的git.pull()
。 gitpython
代碼類似於:
import git
repo_dir = '/path/to/repo'
g = git.cmd.Git(repo_dir)
g.pull()
該應用程序以id_rsa.pub
用戶腳本admin
(用戶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'
),但均無濟於事。
有沒有人遇到過這樣的事情? 這是一個意外的問題,我在調試時遇到了麻煩。
你有沒有嘗試過:
import git
repo_dir = '/path/to/repo'
g = git.cmd.Git(repo_dir)
g.USE_SHELL = True
g.pull()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.