我可以通过GitBash使用ssh(例如,对于' git'与heroku或github等),但我不能在同一台机器上的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暗示的那样,设置以下env var解决了我的问题:
set HOME=C:\Users\user1
答案 0 :(得分:8)
由于您使用的是GitHub,请从cmd尝试
ssh -v -T git@github.com
查看它所呈现的按键。也许也可以尝试使用Git Bash并比较输出。
这可能是因为%HOME%未正确设置。将其设置为包含.ssh
目录(以及密钥)的目录
答案 1 :(得分:1)
查看文件路径 - “/.ssh/identity”,对于cmd.exe,可能不是您获得SSH密钥的地方:)。当你使用git-bash时,可能会出现homedir扩展的情况,但是在本机cmd.exe上却没有。
不要使用cygwin ssh和常规ssh密钥文件,而应考虑使用PuTTY的plink用于SSH程序和sant-agent的分页。
答案 2 :(得分:0)
我要仔细检查你的系统路径是否包含对你的git / bin位置的引用