当前位置: 首页 > 知识库问答 >
问题:

使用Git凭证助手和gnome-keyring作为Sudo时出错

齐锐进
2023-03-14

我正在寻找一种方法,在连接到使用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克隆,因为有时我需要创建克隆的目录需要它。任何帮助都将不胜感激。

我使用的版本:-git version 1.9.1-Ubuntu Server 14.0.4

先谢谢你!-Richard O.

共有3个答案

秦鸿羽
2023-03-14

我有时需要运行sudo git克隆,因为有时我需要制作克隆的目录需要它。任何帮助将不胜感激

您尝试将存储库克隆到的文件夹是由root创建的,因此您无权在其下编写或创建文件夹,除非您是root(sudo),设置权限(chmodchown),然后您将能够克隆到该文件夹中。

chmod 755 /path
桓嘉谊
2023-03-14

使用< code>sudo以root用户身份运行命令。这就像要求您的系统管理员(如果您有系统管理员的话)为您运行一个命令。< code>root用户不能做任何与开发相关的事情,因此< code>git不能用作root用户。

一旦您以另一个用户(root或任何其他用户)的身份运行命令,预计该其他用户将无法与您的普通用户正常通信(特别是,这里找不到您的gnome-keyring守护进程)。

所以,答案是:“不要那样做”。如果您确实需要在特定目录中进行克隆,请按照CodeWizard的答案中的建议,为自己授予该目录的权限。实际上,如果你需要在一个你没有权限的目录中克隆,问问自己你是否做错了什么:原则上,这是不应该发生的(我的猜测是:你过去已经用了太多sudo,这就是为什么你在这里和那里都有um可写目录的原因)。

谷梁襦宗
2023-03-14

除了使用 sudo 之外,请注意,在 2016 年,libgnome 密钥环是特定于 GNOME 的,现在已被弃用(实际上自 2014 年 1 月起)。

Microsoft 提供了一个名为 GCM(Git 凭据管理器)的跨平台凭据帮助程序,您可以安装(无需构建它)并配置它:

git-credential-manager-core configure

您需要Git 2.27才能使用它。

Git 2.11(2016年第4季度)包括一个使用libsecret的新凭证助手。

参见Mantas Mikulnas(grawity)的提交87d1353(2016年10月9日)。
(由Junio C Hamano合并-gitster-在提交bfe800c,2016年10月26日)

一个新的凭据帮助程序,它通过“libsecret”与XDG秘密服务API的实现进行通信,已被添加到贡献/凭据/中

它使用可以支持XDG秘密服务API的其他实现的库秘密秘书处。

但到2022年,这一点就不再需要了。见上文

正如mati865在评论中指出的:

应该注意的是,有些发行版,如Arch和Fedora,提供了二进制和源代码形式的帮助器。

  • Arch 上的 Libsecret binary: /usr/lib/git-core/git-credential-libsecret, and
  • Libsecret binary on Fedora: /usr/libexec/git-core/git-credential-libsecret.

注意:正如@ruck在注释中所添加的那样,对于Fedora和Git v2.25.2-1或更高版本,您需要使用该二进制文件安装一个额外的包,因为它已经从主Git包中分离出来:

dnf install git-credential-libsecret
 类似资料:
  • 问题内容: 我一直在寻找一种方法,以在连接到使用SSL的Git服务器时安全地存储凭据。我遇到了@james-ward的建议我所做的只是我更新了Git的“系统”配置而不是“全局”配置 然后我可以跑步 凭据助手将存储我的凭据,但是当我运行以下命令时: 它给我以下错误 有时我需要运行sudo git clone,因为有时我需要进行克隆的目录需要它。任何帮助,将不胜感激。 我正在使用的版本:-git版本1

  • Git 1.8.0支持与gnome-keyring的集成。 在阅读了关于git凭据帮助程序的文档之后:http://git-scm.com/docs/gitcredentials.html 我无法找到使用这个新功能的方法。我如何整合它?我使用的是Archlinux和从Archlinux的存储库安装的git。(git 1.8.0)

  • 问题内容: 我正在关注本教程: 但是,它没有告诉您如何添加凭据。Jenkins确实具有特定的“凭据”部分,您可以在其中定义用户user&pass,然后获取要在作业中使用的ID,但是如何在管道指令中使用它呢? 我尝试过: 没运气: 有没有一种方法可以配置管道中的凭据,还是必须将SSH密钥放入Jenkin的Linux用户的.ssh / authorized_keys文件中? 在理想的世界中,我想为管道

  • 本文向大家介绍解决MySQL Workbench gnome-keyring-daemon错误的方法分享,包括了解决MySQL Workbench gnome-keyring-daemon错误的方法分享的使用技巧和注意事项,需要的朋友参考一下 在Fedora下安装了一个MySQL Workbench,运行,连接数据库,在Store in Keychain时出现了gnome-keyring-daem

  • 如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。 幸运的是,Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项: 默认所有都

  • 我正在使用Dropwizard JDBI框架开发一个Web服务。 现在,我想使用“用户指定的参数”,而不是在yaml文件中具有数据库配置,我的意思是,数据库配置将通过endpointURL提供。 通过dropwizard jdbi可以定制信用吗 如果是,在引用此内容时,我应该考虑在代码中进行哪些更改?- http://dropwizard.readthedocs.org/en/latest/man