2013-02-22 88 views
3

我的机器设置如下: Windows 7,Git for Windows,Git Bash,openSSH 1.6通过cygwin安装。即使在SSH密钥交换后,GitHub仍然要求登录

我也跟着上https://help.github.com/articles/generating-ssh-keys

的指示,但我还是在每次登录我推的东西。

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

+1

您是否在存储库中使用了SSH-URL?如果使用HTTP变体,则不能使用密钥身份验证,但需要使用密码。 – 2013-02-22 09:59:48

+0

啊这是问题的感谢,但现在我必须每次键入密码短语...是必要的吗? – goTAN 2013-02-22 10:34:19

+0

请参阅我的答案。 – 2013-02-22 10:52:30

回答

3

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

[email protected]:username/repository.git 

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

您可以通过运行

ssh-add /path/to/key 
+0

当我尝试将密钥添加到我的ssh代理程序时出现错误: 无法打开与您的身份验证客户端的连接。当我在cygwin上执行ps -a时,只能看到/ usr/sbin/sshd进程正在运行。有趣的是,我无法看到我的git bash上的这个过程。取而代之的是使用/ bin/ssh-agent。我真的搞砸了什么...... – goTAN 2013-02-22 11:05:12

+0

@goTAN连接问题是cygwin的ssh客户端的问题。看到这里:http://stackoverflow.com/questions/17695337/cygwins-ssh-add-returns-could-not-open-a-connection-to-your-authentication-age/17695338#17695338。如果你在我的链接中关注Holger的答案和答案 - 你应该很乐意去。 – 2014-01-13 14:02:04

0

添加私钥当前SSH代理会话现在我得到了它还挺工作... 起初我卸载了SSH软件包cygwin的版本,因为混帐的Windows附带SSH。

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

eval 'ssh-agen.exe' 

ssh-add ~/.ssh/id_rsa 

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

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

+0

您必须始终输入您的密码。按照我的指示在我的文章进一步自动化。 – 2013-10-22 14:32:23

0

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

  1. 创建一个在你的home目录命名为.bashrc文件名(这样完整的文件路径是C:\Users\XYZ\.bashrc其中XYZ是Windows用户名
  2. 在文件中添加以下两行注:私钥文件的改变位置如果不是~/.ssh/id_rsa

    eval `ssh-agent`

    ssh-add ~/.ssh/id_rsa

  3. 开放的Git Bash的应用程序,你应该询问你的密钥密码

0

如果你想删除的密码提示,并惹恼你就会进入:

ssh-keygen -p 

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