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