簡體   English   中英

在主管下使用gitpython時,SSH身份密鑰被忽略

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM