当前位置: 首页>>技术教程>>正文


password – 将 git 与 gnome-keyring 和 http(s) 存储库结合使用的正确方法是什么?

, , ,

问题描述

目前,每当我 git pullgit push 到 http(s) 存储库时,我都会得到以下信息:

$ git pull
Username for 'https://gitrepos.reposdomain.com': [email protected]
Password for 'https://[email protected]@gitrepos.reposdomain.com': 

这对于不经常使用来说还可以,但很快就会变得非常烦人。不幸的是,在这种情况下不能选择切换到 ssh。

我读到过,早期版本的 git 提供了凭据 “store” 和 “cache”,但不建议这样做,因为它以明文形式存储密码。

较新版本的 git 显然将 git 凭据存储在 gnome-keyring 中,但必须正确设置。

我已经尝试遵循 SO 上的其他(非 Ubuntu)答案来使其正常工作(即 this one ),但我仍然看到用户名和密码提示。

存储 http(s) 存储库的 git 凭据的正确且最安全的方法是什么?如何使它们在 Ubuntu 上工作?

最佳答案

git-credential-gnome-keyring 现已弃用。

相反,请使用 libsecret 。如果您的计算机上尚未预安装它,请使用以下过程:

  1. 确保已安装 libsecret 及其开发库:

    \n

    sudo apt install libsecret-1-0 libsecret-1-dev\n

    \n

  2. 然后从 libsecret 开发库附带的源代码构建凭证助手:

    \n

    sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret\n

    \n

  3. 最后,将新编译的二进制文件注册为 Git credential helper

    \n

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

    \n

有关 https://stackoverflow.com/a/40312117/2017781 的更多详细信息

次佳答案

您需要使用 Gnome 密钥环设置 git credential helper

安装并编译 Gnome Keyring 开发:

sudo apt-get install libgnome-keyring-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/gnome-keyring

并设置凭据:

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

第三种答案

这个简单的方法似乎在我的 Ubuntu 18.04.1 和 git 2.17.1 上就足够了:

git config --global credential.helper cache

您可以指定一小时(= 3600 秒)超时,如下所示:

git config --global credential.helper 'cache --timeout=3600'

进一步阅读 the fine manual

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13945.html,未经允许,请勿转载。