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

时间:2013-02-22 09:32:12

标签: windows github ssh cygwin

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

我按照https://help.github.com/articles/generating-ssh-keys

上的说明操作

但我每次推东西时都要登录。

我想我的设置搞砸了...非常感谢任何帮助。

4 个答案:

答案 0 :(得分:4)

为了能够使用基于密钥的身份验证(而不是HTTP basic-auth),您必须使用SSH协议。在Github上,URL看起来像这样:

git@github.com:username/repository.git

使用密钥身份验证后,您可以使用常用的SSH工具来管理连接。其中一个工具是SSH代理,它将在加载后解密您的私钥,并在运行时将其保存在主内存中。这允许新的SSH会话使用此密钥,而无需使用密码问题打扰您。

您可以通过运行

将私钥添加到当前SSH代理会话
ssh-add /path/to/key

答案 1 :(得分:1)

如果你想删除密码而烦恼你,请输入:

ssh-keygen -p

输入旧的密码短语,当要求新密码短语时,请将其留空。

答案 2 :(得分:0)

我现在有点工作...... 起初我从cygwin卸载了ssh软件包,因为git for windows附带了ssh。

像Holger说我必须将密钥添加到ssh-agent但是从git bash我无法添加它。它的工作原理如下:

eval 'ssh-agen.exe'

ssh-add ~/.ssh/id_rsa

在此之后,我能够在不输入密码的情况下推送。 剩下的唯一问题是我必须在每次系统重启后添加密钥......

任何想法如何解决这个问题?

答案 3 :(得分:0)

这些说明适用于Windows 7及更高版本。

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

    ,请更改私钥文件的位置

    eval `ssh-agent`

    ssh-add ~/.ssh/id_rsa

  3. 打开Git Bash应用程序,系统会提示您询问密钥的密码