我正在寻找一种方法来安全地存储凭据,同时连接到我们使用SSL的Git服务器。 我碰到@ james-ward的这个build议(只编辑我做的是我更新了我们的“系统”configuration,而不是我们的Git的“全局”configuration( 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服务器14.0.4
先谢谢你! 理查德·O
我有时候需要运行sudo git clone,因为有时我需要做一个克隆的目录需要它。 任何帮助,将不胜感激
你试图克隆版本库的文件夹是由root创建的,所以你没有权限写或创建它下面的文件夹,除非你是root( sudo
),设置权限( chmod
或chown
),你将能够克隆到文件夹中。
chmod 755 /path
除了使用sudo之外,请注意,在2016年, libgnome-keyring
特定于GNOME,现在已被弃用( 实际上自2014年1月起)。
Git 2.11+(Q4 2016)将包含一个使用libsecret
的新证书助手。
参见[commit 87d1353]( https://github.com/git/git/commit/87d1353a6a133aafd2ef29ba6c740a8d3d71dadb )(2016年10月9日)作者: MantasMikulėnas( grawity
) 。
(由Junio C gitster
合并- gitster
– in [commit bfe800c]( https://github.com/git/git/commit/bfe800c9d758b4dd760e8457bc79d35362b1effd ),2016年10月26日)
通过“ libsecret ”与XDG秘密服务API的实现进行对话的新证书助手已被添加到
contrib/credential/
。它使用
libsecret
,它可以支持XDG Secret Service API的其他实现。
您可以使用以下方法安装libsecret
和开发库:
sudo apt-get install libsecret-1-0 libsecret-1-dev
那么你需要建立凭证管理器
cd /usr/share/doc/git/contrib/credential/libsecret
(如果没有自动安装,从源文件复制凭证/ libsecret文件夹)
sudo make
最后,你应该把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
。
使用sudo
以root身份运行该命令。 这就像问你的系统管理员,如果你有系统管理员,为你运行一个命令。 root
用户并不打算做与开发相关的任何事情,因此git
并不意味着被用作root。
一旦以另一个用户(root或任何其他用户)的身份运行某个命令,则希望这个其他用户不能与通常的用户正常通信(特别是在这里没有找到你的gnome-keyring-daemon)。
所以答案是:“不要这样做”。 如果你确实需要克隆一个特定的目录,就像在CodeWizard的答案中建议的那样,给自己的目录权限。 实际上,如果你需要克隆一个你没有权限的目录,问问你自己是否做错了什么:原则上这不应该发生(我的猜测是:你以前已经使用过sudo
了,这就是为什么你在这里和那里都有可写目录的原因)。