我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。

原因可能是什么?


当前回答

我不知道是否有人需要不同的东西,但这对我帮助很大 https://stackoverflow.com/a/6445525/11891580

对我来说,每次重启,我都必须运行ssh-add——apple-use-keychain来加载凭据,所以我把这个命令添加到堆栈溢出的答案,现在它已经修复了

其他回答

从OS X El Capitan(10.11)升级到macOS Sierra(10.12)后重新启动后,这种情况一直发生在我身上。ssh-add解决方案暂时有效,但不会在再次重新启动时继续存在。

永久的解决方案是编辑(或创建)~/。ssh/config,启用UseKeychain选项。

Host *
    UseKeychain yes

相关:自从我更新到Sierra, macOS一直在问我的ssh密码

我也有类似的问题,但其他答案并没有解决我的问题。我想我应该继续发布这篇文章,以防有人像我一样有一个奇怪的设置。

结果发现我有多个密钥,而Git首先使用了错误的密钥。它会提示我输入密码,然后我输入它,然后Git会使用另一个可以工作的密钥(我不需要在这个密钥上输入密码)。

我刚刚删除了它用来提示我输入密码的密钥,现在它工作了!

上面没有提到的另一个可能的解决方案是使用以下命令检查您的遥控器:

git remote -v

如果远程服务器不是以git启动,而是以https启动,您可能希望按照下面的示例将其更改为git。

git remote -v // origin is https://github.com/user/myrepo.git
git remote set-url origin git@github.com:user/myrepo.git
git remote -v // check if remote is changed

我不知道是否有人需要不同的东西,但这对我帮助很大 https://stackoverflow.com/a/6445525/11891580

对我来说,每次重启,我都必须运行ssh-add——apple-use-keychain来加载凭据,所以我把这个命令添加到堆栈溢出的答案,现在它已经修复了

如果你碰巧用的是鱼,这里有一个要点:

# config.fish
if not pgrep -f ssh-agent > /dev/null
  eval (ssh-agent -c)
  set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
  set -Ux SSH_AGENT_PID $SSH_AGENT_PID
  set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
end