DBeaver SSH隧道无效的私钥。

28

友情提醒,不要忘记接受答案或更详细地阐述问题,这样我们才能更好地帮助您。这有助于寻找此信息的人,并且对我们来说也有助于分类问题。 - tupui
4个回答

29
  1. 一开始我找到了这个解决方案:https://github.com/rundeck/rundeck/issues/4813#issuecomment-492358649 但是我并不想重新创建我的密钥,因为它已经在多台服务器上使用了。

  2. 经过一个小时的谷歌搜索,我找到了另一个建议:通过sshj扩展使用另一个SSH实现:https://github.com/dbeaver/dbeaver/issues/3917#issuecomment-410616717可以通过内置的软件包管理器进行安装:帮助-> 安装新软件->https://dbeaver.io/update/sshj/latest/ 而且它运行得很好!


我猜你尝试隧道化数据库连接?你是否使用了跳板主机?如果是这样,你是否知道如何正确填写SSH隧道页面?我正在使用最新的DBeaver和SSHJ已经安装并且似乎在工作,但是隧道连接不起作用。 :( - Igor
是的,请使用SSHJ。如果您在Arch上,请从存储库“dbeaver-plugin-sshj”安装它。https://github.com/dbeaver/dbeaver/issues/5845#issuecomment-543187932 - Spixmaster
2
在最新版本中,您只需将“Implementation”设置为SSHJ(在“高级”下),就可以使其正常工作。 - pooroldpedro
该程序目前无法从该URL安装,但是您可以按照此答案中所述选择“sshj”作为实现方式。它位于“高级选项”部分的“SSH”选项卡中。 - Oleksandr Grin

20

这个错误是由于SSH私钥的格式问题引起的。默认情况下,ssh-keygen使用OpenSSH格式创建私钥,其中包含以下标头:

-----BEGIN OPENSSH PRIVATE KEY-----

但是DBeaver只接受使用旧的PEM格式的密钥——具有以下标题:
-----BEGIN RSA PRIVATE KEY-----

你可以使用以下方式之一直接生成具有正确标题的密钥:
ssh-keygen -t rsa -b 2048 -m PEM

您也可以将现有的密钥转换(注意!这会覆盖现有的密钥,您只能复制私钥并在副本上应用命令):

ssh-keygen -p -m PEM -f id_rsa

在 DBeaver 的 GitHub 上有一个未解决的问题。


17

以上建议对我没有帮助。但在最新版本的DBeaver中,您只需在高级设置下更新SSHJ实现:

输入图片说明

这对我有用!


7

我成功在 DBeaver 社区版版本 7.3.4.202101310933 和 macOS Catalina 版本 10.15.7 上实现了 SSH 隧道连接,具体操作如下:

在终端中: 在默认位置 ~/.ssh/id_rsa 创建4096字节的 RSA 私钥,使用命令ssh-keygen -t rsa -b 4096

在 DBeaver 中:

  • 点击“帮助” > “安装新软件”
  • 点击“添加…”
  • 输入名称:SSHJ
  • 输入位置:https://dbeaver.io/update/sshj/latest/
  • 点击“下一步”并完成整个 SSHJ 安装过程 (我第一次尝试未能成功)
  • 点击“保存”
  • 点击“重启 DBeaver”

在“连接设置”的 SSH 隧道选项卡上:

  • 使用身份验证方法:公钥
  • 使用私钥:~/.ssh/id_rsa (按照其他人的建议,不使用 PEM 而是使用 OpenSSH)
  • 输入口令短语
  • 选择保存密码
  • 选择实现方式:SSHJ
  • 点击测试隧道配置

将显示模态对话框。

Connected!
Client version: SSHJ_0.27.0
Server version: OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
  • 点击确定

嗨,欢迎 :) 你的唯一代码格式有点刺眼。请检查我的编辑是否仍保留了信息,并对其进行修改以纠正错误。 - WurmD
我相信你的修改完全没问题。但是我不知道在哪里可以查看你修改后的版本。 - sbecker11
WurmD,我喜欢你的版本。你能修改我的帖子还是我需要自己复制粘贴? - sbecker11
1
@shawn-becker 谢谢您提到 SSHJ!在生成新的SSH密钥后,我一直在努力解决几个不同的问题。问题1)有人说要更改 id_rsa 头文件。根据您的建议,我将其改回来了。问题2)在编辑连接设置时,某个地方不知何故将SSHJ关闭,改为使用JSch。一旦我将它切换回SSHJ,我就能够再次连接。您拯救了我很多痛苦!感谢您!! - Sawta

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