配置 git 仅询问密码一次并超时

Bla*_*ack 4 linux ssh passwords git bitbucket.org

如果我执行git pullgit push,那么我总是会被要求输入密码。

我在机架速度上生成了公钥/私钥对。

我在 Bitbucket 中打开了我的项目:设置 -> 常规 -> 访问密钥 并添加了我的公钥。

然后我像这里看到的那样配置 git ,以便它记住密码 600 秒。

git config --global credential.helper 'cache --timeout=600'
Run Code Online (Sandbox Code Playgroud)

我确保我的 git url 不是 https:

origin  git@bitbucket.org:company/example.git (fetch)
origin  git@bitbucket.org:company/example.git (push)
Run Code Online (Sandbox Code Playgroud)

然后我执行了git pull。它第一次要求输入密码。然后我git pull再次执行,但仍然要求输入密码。

小智 5

由于您使用的是 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,不需要运行第一个命令。