Git无法记住密码

8
我是一个新手,刚开始使用git。每次我想将文件推送到github时,它总是提示我输入我的密钥密码。例如:'https://username@bitbucket.org'的密码。
我希望git能够记住我的密钥密码。在Windows 7上,我应该如何做呢?我已经阅读了这里https://help.github.com/articles/set-up-git的帮助页面。

1
只需按照此答案所指示使用ssh-agent即可。 - Nevik Rehnel
Putty自带代理,使用它即可。 - Flavius
3
为什么人们会投票关闭那些与FAQ中“程序员常用的软件工具”明显不相关的问题?SO已经变得如此恶劣,有毒瘤用户! - Flavius
操作系统是程序员常用的工具。如“我找不到我的备份”这样的问题应该允许吗?那么命令行中更改颜色方案呢?还有就是无法安装用于测试程序的Web服务器怎么办?虽然这些都与编程有关,但我认为它们并不是“编程”问题。对于这类问题,有其他的StackExchange网站可供查询。这只是我的个人看法,因此需要投票来关闭/转移问题。 - Abizern
1
我认为这个问题应该被转移到superuser.com,而不仅仅是关闭。 - Schwern
@Abizern 如果你在评论中所写的是真心话,那你应该提议移动而不是关闭。请管理员醒醒吧!在完全破坏 Stack Overflow 上的有益氛围之前,请停止消极和不友好的行为。 - gorn
2个回答

11

如果您按照Github上的指示进行操作,请注意以下内容。

知识点:凭据助手仅在克隆HTTPS repo URL时有效。如果使用SSH repo URL,则需要使用SSH密钥进行身份验证。

由于您使用了ssh,因此git凭证助手不会起作用。 您有几个选项。

  • 设置ssh-agent以存储ssh密钥密码。

ssh问题并非特定于git。 您可以设置ssh-agent,以便只需输入一次ssh密钥密码。 它将被记住,安全地存储在内存中,直到您退出登录。 Github有一份关于设置ssh-agent的教程

无论选择哪个选项,我都强烈建议您抽出时间设置ssh-agent。 SSH非常有用且广泛使用,您可能会再次遇到此问题。

  • 改用https而不是ssh。

您可以从https://github.com/username/my-repo.git克隆,而不是从git@github.com:username/my-repo.git克隆。 这是您项目页面上的http按钮。 然后,Github文档中描述的git凭据助手将起作用。 您可能需要首先安装它,或者使用他们的Github应用程序。 所有这些都在Github Windows设置指南的“密码缓存”部分中进行了描述。

  • 使用他们的Github应用程序。

该指南提到他们现在有一个Github应用程序,它可能可以为您处理此问题。 但是,其他git服务器不会有这样的东西,这只是一种临时措施。


但是,我使用https://,而不使用Github应用程序,请帮帮我。 - Ahmed el-Gendy
@Ahmedel-Gendy,你最初的帖子中说的是消息“Ex: Enter passphrase for key '/c/Users/.ssh/id_rsa'”,这是ssh。现在你已经改成了https。无论如何,在我的答案和Github指南中,使用Github应用程序,它将为您设置git凭据管理器。请参阅“密码缓存”部分。 - Schwern
1
我使用这些步骤并使用ssf,非常感谢@Schwern。 - Ahmed el-Gendy

2

github提供两种不同的访问存储库的方法:https和ssh。

在您最初的问题版本中,您配置了git通过ssh访问github。因此,git调用ssh,然后尝试读取您的密钥并要求您输入ssh密钥的密码。

创建ssh密钥时,您可以选择使用密码来保护它,或者决定不使用密码保护。

如果您选择使用密码,则每次想要使用密钥(即push,fetch等)都必须输入密码,或者您可以使用ssh-agent。在后一种情况下,您只需在将密钥添加到代理时输入一次密码。之后,代理将为您执行所有授权操作。

在Windows上,您可以使用PuTTY工具管理密钥: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

您可以使用puttygen生成新密钥或更改现有密钥(例如删除密码)。

您可以使用pagent作为ssh代理。启动后,它将驻留在通知区域。单击图标以添加您的密钥。

一旦代理知道了密钥,您就不再需要输入ssh密码。


嘿,把问题从ssh改成https是不公平的。 ;) - michas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接