在Windows 7上连接Git和GitHub而无需Bash

13

我正在新的Windows 7电脑上设置git,并且在让github识别我的ssh密钥时遇到了问题。我采用了一种与标准脚本不同的方法,不想使用cygwin而是更喜欢使用powershell提示符。以下是我的操作:

  1. 我安装了msysgit(便携版)。
  2. 我转到C:\ program files \ git \ bin并使用ssh-keygen生成了公共/私人ssh密钥对,然后将它们放在c:\ Temp中。
  3. 然后我在c:\ Users \ myusername \(在Windows 7上)中创建了一个名为.ssh \的目录。
  4. 我将ssh-keygen生成的两个文件(id_rsa和id_rsa.pub)移动到.ssh目录中。
  5. 我进入我的github帐户,创建了一个新的公共密钥,将id_rsa.pub的内容复制粘贴到其中并保存。
  6. 我现在进入我的powershell提示符,set-alias git 'C:\program files\git\bin\git.exe'
  7. 我尝试执行clone git@github.com:togakangaroo/ps-profile.git命令,但被拒绝了:

    Permission denied (publickey). fatal: The remote end hung up unexpectedly

过去的经验表明,这意味着git无法识别我的密钥。我错过了哪些步骤?

我有一种感觉,需要通过某种方式配置git,以便它知道我的ssh密钥在哪里(尽管它似乎应该自动查找),但我不知道如何做到这一点。

另一个可能的线索是,当我尝试运行git config --global user.name "George Mauer"时,出现错误。

fatal: $HOME not set

不过,我设置了一个名为“HOME”的用户环境变量,值为%HOMEDRIVE%%HOMEPATH%。

8个回答

12

我有同样的问题。我不小心把错误的目录添加到了路径中。

在我将路径从*\Git\bin\更改为*\Git\cmd\后,一切都正常了。

git.cmd设置环境变量。


谢谢,那很有帮助。现在 git push origin develop 正确地要求我输入 SSH 密钥的短语。顺便说一下,在我的情况下,*\Git\cmd 中的文件也被命名为 git.exe。我之前没有设置过路径,所以我想我在安装 msysgit 时选择了错误的选项——在某个时候,他会问你从哪里使用它,是 cmdgit bash 等等。 - Lumen

9
我的解决方法关于在Windows 7上遇到的错误信息:“无法打开到您的认证代理的连接。”,首先在git Bash控制台中运行ssh -v git@github.com,查找Github需要哪种公钥文件,我看到的文件名是id_rsa。接着,我在Windows资源管理器中查看了c:\users\username\.ssh文件夹,发现没有id_rsa文件,但有github_rsagithub_rsa.pub文件。将这些文件复制到c:\users\username\.ssh文件夹并将其重命名为相应的id_rsaid_rsa.pub即可解决问题。之后,我就能将本地提交推送到Github存储库中了。

8
您要找的命令是: ssh-add C:\path\to\key 首先,您可能想了解ssh当前正在查找密钥的位置,可以运行以下命令: ssh -v git@github.com

ssh和ssh-add实用程序是否在git\bin目录中?我这里没有使用bash。 - George Mauer
抱歉,我说得太早了,我看到它们在那里。当我运行ssh时,我会得到这个:http://pastebin.com/G6FPN9As。这到底是什么意思? - George Mauer
看起来ssh正在C:\program files\git\bin.ssh中寻找密钥。最简单的解决方案是将密钥复制到该目录中。但如果您喜欢它们所在的位置,则运行ssh-add c:\Users\myusername.ssh。 - Nick Novitski
3
我想我更喜欢保持它井然有序 - 但运行ssh-add时出现“无法打开到您的身份验证代理的连接”。 - George Mauer
尝试设置路径以包括便携式安装的cmd目录:set path=c:\yourpath\portablegit\cmd;%path%。看看这是否暂时有助于ssh-add或git-config工作。 - Nick Novitski

7

我有同样的问题,解决方法是将你的 id_rsa* 文件放在 C:\Program Files\Git\.ssh 文件夹中。


2
尝试了其他所有方法,但都无济于事。想着我也会尝试这个...它起作用了!谢谢! - Sreenath Nannat

3

1

我曾经在PowerShell上遇到了同样的问题,持续了大约3个小时。

只需要将你的HOME变量设置为

C:\Users\Your Username

并重新启动 PowerShell。然后确保您的所有密钥和所有匹配。


0
我曾经遇到过这个问题,但是原因是Internet Explorer 8.0.7600在尝试执行我的GitHub登录“帐户设置”页面“SSH公钥”上的“添加密钥”按钮功能时发生了JavaScript错误。 这意味着添加密钥失败,该密钥未列在链接“添加另一个密钥”上方的公钥页面中。 后来我转而使用Firefox浏览器解决了此问题。

0

除非完全必要,否则我建议不要使用便携式mysysgit。对我来说,使用正常的mysysgit安装几乎可以立即使用。

然而,最近我在新的Windows机器上设置了这个,并遇到了类似的问题。通过将我的plink SSH密钥转换为OpenSSH兼容密钥,并将其移动到我的个人.ssh文件夹中,问题得以解决。之后,它运行得很好!

如果感兴趣,请在此处查看


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