在Windows 7上存在SSH问题(GitBash vs. Windows CMD)

5
我能够通过GitBash使用ssh(例如,与Heroku或GitHub等一起使用'git'),但是我无法在同一台计算机上从Windows cmd提示符中执行相同操作。可能的问题是什么?如果我记得正确,以前可以从cmd提示符中工作。
我收到的错误消息是:
Permission denied (publickey). fatal: The remote end hung up unexpectedly

我已经获取了两个日志文件:以下是cmd中与“git bash”不同的最后四行:

debug1: Trying private key: /.ssh/identity
debug1: Trying private key: /.ssh/id_rsa
debug1: Trying private key: /.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

如果使用Git bash,则相应的行为:

debug1: Trying private key: /c/Users/user1/.ssh/identity
debug1: Offering public key: /c/Users/user1/.ssh/id_rsa
debug1: Remote: Forced command: gerve user1
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.

已解决

正如@snemarch所提示的,设置以下环境变量解决了我的问题:

set HOME=C:\Users\user1

你遇到了什么错误?你不能只说“我做不了同样的事情”。请提供一些细节。 - manojlds
抱歉,这里出现了错误。 __ 权限被拒绝(公钥)。 致命错误:远程端意外挂断。 - Asad Iqbal
你是如何生成这些日志的? - Reddspark
3个回答

8

由于您正在使用GitHub,从cmd尝试

ssh -v -T git@github.com

请查看它所提供的密钥。也可以尝试使用Git Bash并比较输出结果。
这可能是因为%HOME%没有正确设置。将其设置为包含您的.ssh目录(因此包含密钥)的目录。

我在我的问题中添加了日志。我不确定如何修复它。 - Asad Iqbal
它并没有完全解决我的问题,但是它给了我一个方向。我刚刚更新了我的问题,并提供了解决方案。 - Asad Iqbal
根据解决方案,我的答案完全解决了它。我没有说过 %HOME% 可能没有设置吗? - manojlds
当我第一次阅读您的评论时,我感到您指的是%HOMEPATH%,而这在我的环境中已经正确设置: HOMEDRIVE=C: HOMEPATH=\Users\niqbal HOME=C:\Users\niqbal - Asad Iqbal

1

看一下文件路径 - "/.ssh/identity",在cmd.exe的情况下,可能不是你存放SSH密钥的地方 :). 可能是当你在git-bash上时进行了主目录扩展,但在本机cmd.exe上没有进行。

不要使用cygwin ssh和常规ssh密钥文件,考虑使用PuTTY的plink作为SSH程序和pageant作为ssh-agent。


0

我建议您仔细检查系统路径是否包含对git/bin位置的引用。


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