5

提前为基本问题道歉 - 我是 git 新手,我确信我错过了一些超级简单的东西,有人可以很快回答。

在安装 msysgit 期间,我指定我想使用 PLink 而不是 OpenSSH 作为我的安全 shell 客户端程序。环境变量“GIT_SSH”设置为“C:\Program Files (x86)\PuTTY\plink.exe”,这是 plink 的正确路径。我试过带引号和不带引号。bash 提示符中的“echo $GIT_SSH”显示环境变量的正确值。我还可以使用 putty 通过 SSH 连接到 github,没有任何问题。

启动 pagent 并添加我的私钥后,我打开了一个新的 git bash 窗口并尝试连接到 github(github 已经有我的公钥并且设置正确 - 我正在使用 jquery 项目作为快速测试)。尽管指定我想使用 PLink 并且显然设置了正确的环境变量,但 msysgit 仍在尝试使用在 ~/.ssh 目录中找到的密钥文件。

我已经通过实际将我的私钥放在该目录中来确认这一点,并且一切正常(我能够毫无问题地克隆 jquery 存储库),但我真的很想进行此设置,以便我可以管理我的如果可能的话,通过腻子使用私钥。

不太确定我错过了什么。非常感谢任何帮助 - 在此先感谢!

4

2 回答 2

7

我有类似的问题,解决方案是你必须使用“plink”而不是“ssh”。

因此,以下命令(来自 bash 提示符)应该适合您(假设您已经设置了GitHub SSH 密钥):

$ echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe

$ "$GIT_SSH" -V
plink: Release 0.62

$ "$GIT_SSH" -ssh git@github.com
Using username "git".
Server refused to allocate pty
Hi [your-github-username]! You've successfully authenticated, but GitHub does not provide s
hell access.

如果您只是运行"$GIT_SSH",那么它将打印出您可以使用的参数。该-ssh命令强制 PuTTY 使用 ssh 协议。

如果你已经进入C:\Program Files (x86)\PuTTY\PATH 那么你应该能够运行plink -ssh user@host

原因是 ssh 命令使用 OpenSSH,而 OpenSSH 无法识别 PuTTY 密钥。

plink.exe实际上,在Git / PuTTY 配置问题投票最多的答案中的第一个解决方案中提到了,很难发现。

于 2013-11-19T11:23:10.020 回答
1

对我来说,解决方案是需要以 linux 样式指定路径,如下所示:

set GIT_SSH=/c/PuTTY/plink.exe

这很令人困惑,因为我在 Windows 语法中设置环境变量,但值是 Linux 风格的路径。

关键点是:

echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe   <-- not a valid path in bash shell
于 2015-11-12T19:40:15.403 回答