4

NetBeans IDE 7.3 (Build 201302132200)当我尝试使用 SSH 访问我自己的 GitHub 存储库时,我的(最新的)Netbeans ( ) 似乎完全失败了。它对 HTTP URL 没有问题。

由于我已经导入了 GitHub存储库的现有本地副本New > PHP Project with existing sources.git所以 NetbeansSelect Configured Git Repository LocationPush to Remote Repository窗口中提供了选项。但在这方面是不成功的。

尝试以下:

  1. 当我使用 SSH URL ( git@github.com:user/reponame.git) 和Password选项时,通过帐户传递,Netbeans 尝试连接 GitHub(远程),大约 5 秒后抛出错误Cannot connect to the remote repository at git@github.com:user/reponame.git

  2. 当使用带有选项的 SSH URL 时Private/Public Key,Netbeans 会立即抛出完全相同的错误,所以我认为,出于某种原因,它甚至没有尝试连接 GitHub。

更奇怪的是(?),Netbeans并没有要求私钥的密码。我已经设置了,但没有刻意输入到Netbeans,来测试连接过程。我非常确定,Netbeans 会要求我提供这个密码,因为没有它就不能使用私钥。令我惊讶的是,它并没有要求它,而是抛出了一个错误,说它无法连接 GitHub。当然,那只是一个测试。输入正确的密码后,我得到了完全相同的效果。

我直接从 GitHub 网站复制了我的 repo 的 URL,没有进行任何修改。看来,我只能使用 HTTP URL ( https://github.com/user/reponame.git)。这可行,并向我保证所有项目(URL、用户、reponame、密码,最后是 Internet 连接)都正常。但是,似乎 Netbeans 在 SSH URL 上完全失败了。

以上总是发生,无论我选择Select Configured Git Repository Location还是Specify Git Repository LocationPush to Remote Repository窗口中。无论如何,我将无法通过 Netbeans 中的 SSH 访问我的存储库,而使用 HTTP 是唯一的选择。

puttygen.exe我使用PuTTY 的网站创建了我的私钥-公钥对。我将私钥保存在 Netbeans 安装目录中,并将公钥添加到GitHub 的 SSH 设置页面。我使用了通常与 TortoiseGit 一起使用的分步指南。

我不知道我还能错过什么或者我做错了什么?任何想法?

4

3 回答 3

3

记录:当使用 PuTTYgen 生成密钥时,为了兼容性,建议将其导出为 OpenSSH 密钥。这可以通过访问转换 > 导出 OpenSSH 密钥菜单来实现。

于 2015-01-03T17:17:52.937 回答
2

经过一系列的测试,我发现Netbeans:

  1. 不适用于 GitHub(或任何其他 git)远程存储库的现有本地副本。

  2. 根本不适用于由puttygen.

首先,我必须删除使用 TortoiseGit 克隆的整个文件夹,并使用 Netbeans 捆绑工具 ( Team > Git > Clone) 克隆相同的存储库。Subversion 也是如此(看这里)——所以一般的经验法则是,当你从另一个 Git 或 SVN 客户端切换到 Netbeans 时,你应该对远程存储库进行完整、干净的克隆(或签出)重新使用现有副本的尝试很可能会失败。

至于第二个,请遵循这篇 GitHub 文章中给出的说明并使用ssh-keygen(来自本地安装的 Git for Windows,如果是 Windows,或来自任何其他来源)而不是puttygen-- 由它生成的 SSH 密钥不能在 Netbeans 中使用用于设置 GitHub 的无密码登录。

正如我所写的,我之前一直在使用 TortoiseGit,它可以接受并很好地使用puttygen密钥,所以对我来说并不是很明显,问题的根源就在这里。

在解决了这两个问题(获得干净的克隆和生成正确的密钥)之后,我的问题中表达的啤酒问题消失了,Netbeans 与 GitHub 存储库一起工作就像一个魅力。

于 2013-05-22T13:00:46.837 回答
0

我的解决方案是使用带有 PEM 选项的 ssh-keygen:

ssh-keygen -t rsa -b 4096 -m PEM -C my@mail.xy

Netbeans 12 使用 JGit 作为 Git 工具,而这只支持特殊类型的 ssh 密钥?

于 2021-08-14T16:04:54.417 回答