【问题标题】:Cannot make egit work with a server via ssh无法通过 ssh 使 egit 与服务器一起工作
【发布时间】:2015-09-11 14:18:31
【问题描述】:

在 Windows 10 上运行 Mars 版本的 Eclipse。我正在尝试使用此 URL 克隆存储库(域名替换为 example.com):

ssh://git@git.example.com/opt/git/dnsconfig.git

最初我在尝试连接时遇到了很多麻烦,因为 Eclipse 在 known_hosts 中没有服务器指纹,并且无法接受未知指纹。我最终找到了解决方法(将 Linux 服务器的 known_hosts 文件中的行复制到 Windows 上的 eclipse known_hosts 中)。 eclipse中与私钥匹配的公钥已添加到服务器的authorized_keys文件中。

现在我已经解决了指纹问题,当我尝试克隆时,我进入分支选择屏幕,这是顶部的错误消息:

ssh://git@git.example.com/opt/git/dnsconfig.git:未找到。: ssh://git@git.example.com/opt/git/dnsconfig.git:未找到。

如果我在 Linux 机器上输入以下命令(该主机也在服务器上的 authorized_keys 中设置了一个 ssh 密钥),它可以完美运行:

git clone ssh://git@git.example.com/opt/git/dnsconfig.git

我以此为指导设置服务器:

https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

这可能是用户错误...谁能帮我弄清楚我做错了什么?

【问题讨论】:

  • 在另一个端口上以调试模式运行 sshd,并在 eclipse 中更改端口,得到了这个调试信息:apaste.info/HHY 看起来 Eclipse 在服务器发送其密钥后关闭了 ssh 连接(SSH_MSG_NEWKEYS发送),而不是发回密钥。
  • 更多信息:同样的事情发生在 sshd 调试(备用端口)上,即使我输入了 git 用户的密码并选中该框以将其保存在安全存储中。我不想使用密码,但即使我这样做了,那也不起作用。
  • 在来自 sshd 的日志中,您似乎使用 putty 作为客户端。 AFAIK putty 不会读取您的 ssh 配置,因此除非您专门配置它,否则它很可能不会使用任何密钥...我会下载 Git for Windows 并从命令行对其进行故障排除。另一个想法是 JGit 读取 SSH .config 文件。也许您对该主机有一些冲突的配置?
  • 我可以向你保证,我没有(直接)使用腻子进行连接。我在 Eclipse 中单击按钮来克隆一个 git repo。
  • 我尝试使用 msysgit(我已经安装了它)。那也没用。在 msysgit 附带的 Git Bash 中,我使用 Eclipse 尝试中已经在 c:\users\username\.ssh 中拥有的 ssh 密钥成功地建立了一个普通的 ssh 连接(没有 git)。这是来自 Git Bash 的日志:apaste.info/lGo

标签: eclipse git


【解决方案1】:

在我尝试了 msysgit 之后,Michał Grzejszcza 关于 Putty 的笔记让我又尝试了一件事情。

确实经常使用 putty,并且我有一个密钥,我一直在选美中加载,我用它来登录多个服务器上的个人帐户。

我没有为 eclipse 使用那个个人密钥,我想为 git 使用一个完全独立的密钥。

当我将我的个人密钥的匹配公钥添加到 git 服务器上的 git 用户的 authorized_keys 文件中时,突然 eclipse 和 msysgit 都工作正常,这意味着它们都被绑定到 putty 中。这对 msysgit 来说有点令人惊讶,因为我在 msysgit 上的信息说它带有并使用 openssh。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2017-03-11
    相关资源
    最近更新 更多