Windows GitHub即使在交换ssh密钥后仍要求登录

Windows GitHub即使在交换ssh密钥后仍要求登录,windows,github,ssh,cygwin,Windows,Github,Ssh,Cygwin,我的机器设置如下: windows 7、Git for windows、Git Bash、openSSH 1.6通过cygwin安装 我按照上面的指示去做 但每次推送东西时,我仍然必须登录 我想我的设置搞砸了。。。非常感谢您的帮助。要使用基于密钥的身份验证(而不是HTTP basic auth),您必须使用SSH协议。在Github上,URL如下所示: git@github.com:username/repository.git eval 'ssh-agen.exe' ssh-add ~/.

我的机器设置如下: windows 7、Git for windows、Git Bash、openSSH 1.6通过cygwin安装

我按照上面的指示去做

但每次推送东西时,我仍然必须登录


我想我的设置搞砸了。。。非常感谢您的帮助。

要使用基于密钥的身份验证(而不是HTTP basic auth),您必须使用SSH协议。在Github上,URL如下所示:

git@github.com:username/repository.git
eval 'ssh-agen.exe'

ssh-add ~/.ssh/id_rsa
使用密钥身份验证后,就可以使用常用的SSH工具来管理连接。其中一个工具是SSH代理,它将在加载私钥后解密私钥一次,并在私钥运行时将其保存在主内存中。这允许新的SSH会话使用此密钥,而不必担心密码问题

您可以通过运行以下命令向当前SSH代理会话添加私钥

ssh-add /path/to/key

我现在让它工作起来有点。。。 首先,我从cygwin卸载了ssh包,因为git for windows附带了ssh

正如Holger所说,我必须将密钥添加到ssh代理,但从git bash我无法添加密钥。它是这样工作的:

git@github.com:username/repository.git
eval 'ssh-agen.exe'

ssh-add ~/.ssh/id_rsa
在这之后,我可以在不输入密码的情况下进行推送。 剩下的唯一问题是,每次系统重新启动后,我都必须添加密钥


有没有办法解决这个问题?

这些说明适用于Windows 7及以上版本

  • 在主目录中创建名为
    .bashrc
    的文件名(因此完整文件路径为
    C:\Users\XYZ\.bashrc
    其中
    XYZ
    是您的windows用户名
  • 在文件中添加这两行。注意:如果不是在
    ~/.ssh/id\u rsa

    eval`ssh代理`

    ssh add~/.ssh/id\u rsa

  • 打开GitBash应用程序,系统会提示您输入密钥密码


  • 如果您想删除密码短语,并且它会使您感到烦恼,请输入:

    ssh-keygen -p
    

    输入旧密码,当要求输入新密码时,只需将其保留为空。

    是否使用存储库的SSH URL?如果使用HTTP变体,则不能使用key auth,但需要使用密码。啊,这就是问题所在,谢谢,但现在我每次都必须键入密码…有必要吗?请查看我的答案。当我输入密码时尝试将密钥添加到我的ssh代理时,我得到错误:无法打开到您的身份验证客户端的连接。当我在cygwin上执行ps-a时,我只能看到/usr/sbin/sshd进程正在运行。有趣的是,我在git bash上看不到此进程。相反,存在一个use/bin/ssh代理。我真的觉得我搞错了什么…@goTAN连接问题cygwin的ssh客户端存在lem问题。请参见此处:。如果您按照Holger的答案和我链接中的答案进行操作,您应该可以继续。您必须始终输入您的密码短语。请按照我文章中的说明进行操作,以进一步实现自动化。