问题标签 [sshj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
22015 浏览

java - 处理 sshj 中的“[HOST_KEY_NOT_VERIFIABLE] 无法使用指纹验证 `ssh-rsa` 主机密钥”

我对 sshj 有一个奇怪的问题(我正在使用 sshj v0.6.0),我需要一些人的帮助。使用公钥进行身份验证在某些机器上工作正常,但在其他机器上不能正常工作,我看到以下错误。

我能弄清楚的唯一区别是,有问题的 UNIX ID 即 coonradt 似乎在 ~/.ssh/config 下仅在触发以下错误的框上具有以下列出的配置设置

从上面的配置文件中,我了解到有问题的 ID 应该使用协议 1,2,我怀疑这可能与我的失败有关(我不太确定,但这只是一种预感)

对于可以正常工作的所有其他 UNIX ID,我没有任何这样的配置文件。

PS:我无法更改 UNIX ID“coonradt”的配置,因为中央 hudson 服务器正在使用此 ID。

如果有人可以帮我建议这里可能有什么问题,将不胜感激

以下是我看到的错误:

0 投票
3 回答
1888 浏览

java - 如何保持 SSH 连接可用?

我正在编写一个使用 sshj 库进行 SSH 连接的应用程序。用户从菜单打开连接对话框,输入登录数据并单击连接按钮建立连接。然后用户从不同的面板和框架执行各种操作。我的问题是:在用户单击“断开连接”按钮之前,我应该在哪里保持此连接以使其可用于需要它的每个面板和框架?我考虑过一些自定义类中的静态字段,但我不相信这样做。你有什么想法?

0 投票
3 回答
11483 浏览

java - SSHJ - 密钥对登录到 EC2 实例

我有一个 pem 文件,看起来像 SSHJ 测试中的那个(虽然我没有看到它被引用):https ://github.com/shikhar/sshj/blob/master/src/test/resources/hostkey.pem . 只需尝试通过 pem 文件对 EC2 实例进行身份验证(读取为字符串),但遇到了麻烦。有人做过吗?

错误如下:

编辑:仍然没有运气。AWS为登录生成的私钥一定有问题吗?

0 投票
2 回答
1212 浏览

sshj - SSHJ 在 join() 上永远挂起

我使用 SSHJ 执行一些命令,我​​使用这种方法:

在我执行此命令之前它运行良好:

在这种情况下,整个程序挂起

当然,它开始的过程已经开始。从 shell 执行的同一行也会立即返回。

知道为什么以及如何克服这个问题吗?

编辑:当我不加入()但读取命令的 sysout(使用 commons-io)时,也会发生同样的情况:

0 投票
1 回答
2283 浏览

java - 如何使用 SSHJ 通过 SCP 流式传输文件?

我正在使用 SSHJ 库(https://github.com/shikhar/sshj)。

我可以使用sshClient.newSCPFileTransfer();来获取我的SCPClient对象,但是调用scpClient.download()需要一个字符串作为目标文件的路径或一个 LocalDestFile 对象。我想要的只是打开一个流来下载文件。有没有办法使用 SSHJ 轻松做到这一点?

我查看了 LocalDestFile 的不同实现,但似乎没有任何东西适用于这个用例。

特定用例是下载远程文件并将其流式传输到客户端的浏览器以获取 Web 应用程序。我必须为此使用 SCP,因此想使用 SSHJ 库。

0 投票
2 回答
4014 浏览

java - 如何使用 SSHJ 保持 SSH 连接处于活动状态?

我正在开发一个使用 SSHJ 进行 SFTP 传输的库。由于请求很频繁,我想知道是否可以保持连接打开。

显然,如果服务器经常超时连接,这将一事无成。由于我无法控制服务器,因此我必须保持连接处于活动状态:使用常规 SSH 客户端,我可以指定 aServerAliveInterval并让客户端为我执行此操作。

我想对 SSHJ 做同样的事情,但我不知道要发送什么消息。

SSH手册只是指出ServerAliveInterval

以秒为单位设置超时间隔,如果在此之后没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器响应。

所以我想知道:发送了什么消息?如何通过 SSHJ 重现此消息?

0 投票
3 回答
5673 浏览

fingerprint - sshj 示例('exec'):无法使用指纹验证 `ssh-rsa` 主机密钥

我正在尝试编写一个 java 程序,它将通过 ssh 连接并在工作中的服务器(redhat linux)上做一些事情。我的盒子是窗户。我阅读了有关 sshj 的信息,并且正在尝试使示例正常工作。我已经处理了大多数依赖项,现在我在处理公钥/私钥时遇到了错误,不幸的是我也不太了解(是的,这是新手的完美风暴!)。这是错误:

线程“主”net.schmizz.sshj.transport.TransportException 中的异常:[HOST_KEY_NOT_VERIFIABLE] 无法使用端口 22 上的ssh-rsa指纹验证主机密钥5f:d6:94:00:9e:ec:7e:34:6d:d0:d3:76:df:5e:dd:3dmyserver

这是代码:

任何帮助将不胜感激,谢谢!

0 投票
1 回答
827 浏览

java - sshj exec 没有按我预期的方式显示结果

我试图从 Java SSH 到服务器并运行多个命令。这些命令似乎工作正常,但我没有在 Java 中得到我想要的结果。

这是我的代码片段

这是我看到的输出。我认为这与 LocalWindow 大小有关,但我不知道如何解决它。这仅在我使用具有大量屏幕输出的 ssh 命令时发生(或似乎发生)

这是一个小片段,我得到了 100 行左右

我想看到的是 ssh 命令的屏幕输出,可能很冗长

0 投票
1 回答
3329 浏览

java - 使用 SSHj 进行 SSH 端口转发

我正在尝试创建一个隧道以使用支持 SSH 的防火墙后面的服务。我想要一个完整的 java 解决方案,但我似乎无法让它工作。我找到了这个github 片段,并在此基础上创建了以下代码来保持后台线程为我提供隧道:

问题是,如果我连接到像“10.0.3.96”这样的远程 SSH 服务器,它就不起作用。如果我在本地主机上使用本地 SSH 服务器,它将起作用。运气好的话,我一直在通过不同的配置并尝试调试,但我无法掌握 SSHj 包内部发生的情况。

现在它不必是 SSHj 解决方案,但这是首选,因为代码的其他部分已完全实现并使用 SSHj,我不想在一个项目中混合两个 SSH 包。

谢谢你的帮助。

0 投票
3 回答
5102 浏览

java - How to connect to a remote machine with username and password using sshj java api?

How to connect to a remote machine with username and password using sshj java api?

I tried this code. What is the problem with this code?

It is throwing this following error.

net.schmizz.sshj.transport.TransportException: [HOST_KEY_NOT_VERIFIABLE] Could not verify ssh-rsa host key with fingerprint ******** for 192.168.0.1 on port 22