Fabric git 推送要求输入密码,但命令行版本没有

Fabric git push asking for passphrase, though command line version doesn't

如果我直接从终端 运行 git push 命令,我不会收到任何输入密码的提示(这是预期的行为):

$ git push remotename master

但是如果我 运行 从 Fabric 中执行相同的命令,我会收到输入密码的提示:

>> c.local("git push remotename master")
Enter passphrase for key '/Users/name/private/mykey'

即使我将密钥添加到 ssh 代理 (ssh-add -K ./mykey)

,也会发生这种情况

如何确保 Fabric 版本不会提示我输入密码?

先看看本地用的是什么URL:

c.local("git remote -v")

它不应该要求位于“./”的密钥,除非有一个 ~/.ssh/config 文件使用相对路径指定了私钥(不是一个好的做法)。