Git总是要求密码短语

时间:2015-07-13 07:28:36

标签: git github

有时使用git时出现问题。

当我使用命令git pull origin my_branchgit fetchgit push origin my_branch时,git总是要求密码短语。我不明白为什么?

我希望有人能够解释原因以及每次避免输入密码的方法。

$ git fetch
Enter passphrase for key '/home/khanhpn/.ssh/id_rsa':

2 个答案:

答案 0 :(得分:49)

像Nasreddine所说,这是因为你的密钥是用密码加密的,以防止其他人阅读它。

使用密码密钥的最方便方法是使用ssh-agent启动身份验证代理(在后台运行):

$ eval "$(ssh-agent)"
Agent pid 44304

...然后使用ssh-add向代理注册您的密钥,以便它自动用于后续的SSH连接:

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/khanhpn/.ssh/id_rsa:

当您运行ssh-add时,系统会要求您输入密码,但在ssh-agent运行时您不需要再次输入密码。

您可以找到更多信息on GitHub。另请注意,每次登录时都必须执行此操作,因此您可能希望将eval "$(ssh-agent)"步骤添加到.profile脚本中。

答案 1 :(得分:9)

这是因为您的私人SSH密钥使用密码保护。您可以使用此命令将其删除(不推荐,因为任何人都可以复制您的密钥并使用它来访问您的存储库/帐户):

$ ssh-keygen -p
Enter file in which the key is (/path/to/your/.ssh/key):

在此处提示时输入您当前的密码:

Enter old passphrase:
Key has comment 'rsa w/o comment'
如果要在此处提示时删除密码,请

保留为空:

Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.