[英]Error when using Git credential helper with gnome-keyring as Sudo
我一直在尋找一種在連接到使用 SSL 的 Git 服務器時安全存儲憑據的方法。 我通過@james-ward 遇到了這個建議(我所做的唯一編輯是我更新了我們的“系統”配置而不是 Git 的“全局”配置( https://stackoverflow.com/a/14528360/6195194 )
sudo apt-get install libgnome-keyring-dev
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --system credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring
然后我可以跑
git clone https://ipaddress/git/repo.git
並且憑證助手將存儲我的憑證,但是當我運行以下命令時:
sudo git clone https://ipaddress/git/repo.git testfolder
它給了我以下錯誤
** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon
我有時需要運行 sudo git clone 因為有時我需要進行克隆的目錄需要它。 任何幫助將不勝感激。
我使用的版本: - git 版本 1.9.1 - Ubuntu Server 14.0.4
提前謝謝你! -理查德·O。
除了使用 sudo 之外,請注意,在 2016 年, libgnome-keyring
特定於 GNOME,現在已棄用( 實際上自2014年1 月以來)。
Git 2.11+(2016 年第四季度)將包含一個使用libsecret
的新憑證助手。
參見Mantas Mikulėnas ( grawity
) 提交的 87d1353 (2016 年 10 月 9 日) 。
(由Junio C gitster
合並-- gitster
--在提交 bfe800c 中,2016 年 10 月 26 日)
contrib/credential/
添加了一個新的憑證助手,它通過“ libsecret ”與 XDG 秘密服務 API 的實現進行對話。它使用可以支持 XDG Secret Service API 的其他實現的
libsecret
。
您可以使用以下命令安裝libsecret
和開發庫:
sudo apt-get install libsecret-1-0 libsecret-1-dev
然后你需要構建憑證管理器
cd /usr/share/doc/git/contrib/credential/libsecret
(如果沒有自動安裝,請從源復制credential/libsecret文件夾)
sudo make
最后,您應該將git指向配置中新創建的文件:
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
應該注意的是,一些發行版如 Arch 和 Fedora 提供了二進制和源代碼的幫助程序。
- Arch 上的 Libsecret 二進制文件:
/usr/lib/git-core/git-credential-libsecret
,以及- Fedora 上的 Libsecret 二進制文件:
/usr/libexec/git-core/git-credential-libsecret
。
注意:正如@rugk在評論中添加的那樣, 對於 Fedora 和 Git v2.25.2-1 或更高版本,您需要使用該二進制文件安裝一個額外的包,因為它已從主 git 包中分離出來:
dnf install git-credential-libsecret
使用sudo
以 root 身份運行命令。 這就像要求您的系統管理員(如果您有)為您運行一條命令。 root
用戶不打算做任何與開發相關的事情,因此git
不打算用作 root。
一旦您以其他用戶(root 或任何其他用戶)身份運行命令,預計該其他用戶將無法與您的常用用戶正常通信(特別是,它在這里找不到您的 gnome-keyring-daemon)。
所以,答案是:“不要那樣做”。 如果您確實需要在特定目錄中進行克隆,請按照 CodeWizard 的回答中的建議為自己授予對該目錄的權限。 實際上,如果您需要在沒有權限的目錄中進行克隆,請問問自己是否做錯了什么:原則上,這不應該發生(我的猜測是:您過去已經過多地使用了sudo
並且這就是為什么你在這里和那里都有 um-writable 目錄的原因)。
我有時需要運行 sudo git clone 因為有時我需要進行克隆的目錄需要它。 任何幫助將不勝感激
您嘗試將存儲庫克隆到的文件夾是由 root 創建的,因此除非您是 root ( sudo
),否則您無權在其下寫入或創建文件夾,設置權限 ( chmod
或chown
),您將能夠克隆到文件夾中。
chmod 755 /path
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.