如果我执行git pull
or git push
,那么我总是被要求输入密码。
我在 rackspeed 上生成了一个公钥/私钥对。
我在 Bitbucket 中打开了我的项目:设置 -> 常规 -> 访问密钥 并添加了我的公钥。
然后我像看到的一样配置了 git ,让它记住密码 600 秒。
git config --global credential.helper 'cache --timeout=600'
我确保我的 git url 不是 https:
origin [email protected]:company/example.git (fetch)
origin [email protected]:company/example.git (push)
然后我执行了git pull
. 它第一次要求输入密码。然后我git pull
再次执行,但它仍然要求输入密码。
由于您使用的是 SSH 远程,因此 OpenSSH 会提示您输入密码,而不是 Git。Git 不处理 OpenSSH 的密码(因为这很重要),因此配置 Git 的凭证助手将无效。
如果你想使用 Git 的凭证助手,那么你需要使用 HTTPS 远程。
或者,您可以使用该
ssh-agent
程序保存密码。您可以eval $(ssh-agent -s)
在 shell 中运行,然后运行ssh-add
以添加密钥。系统会提示您输入一次密码,但不会在该终端再次提示您输入密码。您的环境可能已经为您设置了 SSH 代理。你可以运行
env | grep SSH_AUTH_SOCK
,如果它输出任何东西,你可以运行ssh-add
而不需要运行第一个命令。让 Git 存储用户名和密码,它永远不会要求它们。
保存会话的用户名和密码(缓存它):
您还可以为上述设置设置超时:
尝试在终端上使用它来保存您的凭据:
Git 不会在
git push
或上再次询问密码git pull
。另请阅读:
git help credentials