在Windows 7上configurationGitBash:ssh失败,我正在尝试一切,疯了

我正在努力尝试sshgithub。

我在Windows 7上。

对Murgatroyd诚实我一直在扫描谷歌和论坛整天关于这个没有突破。

在我最近的尝试中,我把一个configuration文件放在C:\ Users \ myname.ssh中。 结果有点接近快乐,但仍然没有。

我的configuration只是说:

Host github.com IdentityFile ~/.ssh/id_rsa 

命令ssh -vT git@github.com产生:

 OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Users/myname/.ssh/config debug1: Applying options for github.com debug1: Connecting to github.com [192.30.252.130] port 22. debug1: Connection established. debug1: identity file /c/Users/myname/.ssh/id_rsa type 1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1+github5 debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1+github5 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /c/Users/myname/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /c/Users/myname/.ssh/id_rsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey). 

输出的顶部看起来像我的钥匙正在被发现和使用,而底部是这样的。

我很困惑。

任何build议将深表感谢。

谢谢阅读。

Solutions Collecting From Web of "在Windows 7上configurationGitBash:ssh失败,我正在尝试一切,疯了"

正如我在“ 推送到现有项目权限被拒绝(公钥)SSH错误 ”中所提到的那样,请仔细检查:

  • 你的%HOME%环境变量(应该设置为%USERPROFILE%
  • 您在%HOME%\.ssh\config文件中的完整(Windows)路径(' ~ '对Windows没有多大意义)。
    例如:

     Host gitlab.com HostName gitlab.com IdentityFile C:\path\to\.ssh\gitlab_rsa IdentitiesOnly yes 

请注意,如果您使用默认名称id_rsaid_rsa.pub作为私钥和公钥,则不需要配置文件。

我有点猜测在你的情况下可能出现什么问题,但除此之外,请尝试检查私钥和公钥文件的文件模式。 对于一个私钥通常应该是600(所以,只有文件所有者可写和可读,希望你也指向检查),对公钥文件644(相同,加上所有其他人可读):

 $ ll ~/.ssh -rw------- 1 YOU YOU 1.8K Sep 5 23:53 id_rsa -rw-r--r-- 1 YOU YOU 398 Sep 5 23:53 id_rsa.pub 

如果没有,请尝试遵循Git Bash:

 chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub 

当你在Windows上时,这些命令可能有机会从Git Bash执行时失败 – 因为在运行它的时候,很奇怪,你没有足够的权限来修改文件模式。 如果是这种情况,请先尝试通过标准的“文件属性”菜单修改文件访问权限,并将其设置为允许所有用户“完全控制”。 一旦完成 – 尝试从Git Bash再次修改文件模式 – 现在应该工作。 或者,您可以尝试以管理员身份运行Git Bash,但是我从来没有试过这个,也不确定最终的结果。

说到访问权限,最后的办法就是再次检查~/.ssh目录的权限和所有者。

事实证明,非常奇怪的是,在Windows 7下,ssh-keygen每次都不会生成好的可用密钥对。

我几次重复了generate-upload-then-test循环 – 绝望之余 – 这个问题本身就消失了。

很奇怪。