繁体   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