我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。
原因可能是什么?
我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。
原因可能是什么?
当前回答
也许不是最安全的方法来解决这个问题,但不要设置密码短语,这是可选的。如果您不设置密码短语,它将不会请求它。你可以用更改密码
$ ssh-keygen -p -f ~/.ssh/id_ed25519
> Enter old passphrase: [Type old passphrase]
> Key has comment 'your_email@example.com'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [Repeat the new passphrase]
> Your identification has been saved with the new passphrase.
其他回答
如果您已经尝试了ssh-add,并且仍然提示您输入密码,那么请尝试使用ssh-add -K。这将您的密码短语添加到您的钥匙串。
更新:如果你使用的是macOS Sierra,那么你可能需要再做一步,因为上面的步骤可能不再有效。在~/.ssh/config中添加以下命令:
Host *
UseKeychain yes
在Windows上对我有效的是(我从repo 1st中克隆了代码):
eval $(ssh-agent)
ssh-add
git pull
这时它最后一次向我要密码
积分:溶液是从 https://unix.stackexchange.com/questions/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket
似乎您的本地repo没有更新ssh密钥…至少这是我从HTTPS到ssh时遇到的情况。
你远程重置了吗?
git remote set-url origin <ssh url>
如果你碰巧用的是鱼,这里有一个要点:
# 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
在mac上, 如果你的SSH密钥每次都需要密码,你想跳过它,那么你可以试试下面,它对我来说很好
Eval "$(ssh-agent -s)" ssh-add -K .ssh/id_rsa 添加这个默认的SSH配置对我有用
主机* AddKeysToAgent是的 UseKeychain是的 IdentityFile ~ / . ssh / id_rsa