簡體   English   中英

將 Git 憑據幫助程序與 gnome-keyring 一起用作 Sudo 時出錯

[英]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,現在已棄用( 實際上20141 月以來)。

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

  1. 您可以使用以下命令安裝libsecret和開發庫:

    sudo apt-get install libsecret-1-0 libsecret-1-dev

  2. 然后你需要構建憑證管理器

    cd /usr/share/doc/git/contrib/credential/libsecret (如果沒有自動安裝,請從復制credential/libsecret文件夾)

    sudo make

  3. 最后,您應該將git指向配置中新創建的文件:

    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret


正如mati865評論中所指出的:

應該注意的是,一些發行版如 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 ),否則您無權在其下寫入或創建文件夾,設置權限 ( chmodchown ),您將能夠克隆到文件夾中。

chmod 755 /path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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