问题标签 [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 投票
3 回答
8048 浏览

java - net.schmizz.sshj.transport.TransportException:无法达成和解

我正在尝试使用 SSHJ 将 ssh 连接到其他机器。下面的 PFA 代码(不包括 try/catch/finally 块)。

当我尝试执行上述程序时,出现以下错误

2014-07-01 20:45:09,024 信息 [pool-3-thread-1] nssshj.transport.TransportImpl - 断开连接 - BY_APPLICATION

有人可以帮我调试这个问题。

谢谢。

0 投票
0 回答
478 浏览

java - Java:通过 sshj 在远程机器上启动一个进程,然后继续执行程序并停止进程(dstat)

我正在尝试通过 ssh 从我的 Java 程序使用sshj library.

我需要做的是在远程机器(Linux)上启动 dstat,继续我的程序在远程机器(数据库服务器)上创建一些负载,然后停止dstat日志记录。

到目前为止我所做的:连接到服务器,将 dstat 文件夹复制到/tmp/dstat,使文件可运行,然后:

所以现在的问题是,dstat进程在远程机器上启动并记录到一个.csv文件中,就像我想要的那样,但是 Java 程序等待进程完成。所以后面的线session.exec()永远不会到达。

我还尝试在仅包含dstat命令的远程服务器上运行本地脚本,但我的程序仍在等待dstat完成,这永远不会发生......

dstat所以现在我的问题是:在远程机器上运行时如何继续我的程序?dstat当实现这一点时,我的程序完成它应该做的事情后如何停止?我需要运行单独的线程还是什么?我真的不知道它是如何工作的......

(运行代码的机器也是Linux)

0 投票
1 回答
4826 浏览

java - scp 命令中 -f 的含义是什么?

我正在使用库sshj来发送 scp 命令。它使用选项 -f 从服务器下载到另一个服务器。我在 man 中找不到 -f 选项。

scp 命令中 -f 的含义是什么?

0 投票
1 回答
1946 浏览

java - 使用 runtime.exec 发送 SFTP 命令

我想使用 Java 的 Runtime 类从 sftp 服务器下载文件。我不能使用 Jsch 或 SSHJ 之类的库,因为我需要使用 -B 选项来增加缓冲区大小。到目前为止,我已经尝试过使用此代码:

我收到错误消息:Connecting to xxxxxx... with the name of the host 而不是“xxxxxx”

我已经在 putty 中直接尝试过该命令,效果很好,但是当我在 java 中使用它时,它根本不起作用。我还尝试了一个带有 runtime.exec() 的 scp 命令来下载而不是 sftp,这样就可以了。

有人知道为什么它不起作用吗?我找不到这种方法的例子。或者有人知道允许设置 -B 选项的 sftp 传输库吗?我可能错过了 Jsch 和 Sshj 中的方法。

提前致谢

0 投票
1 回答
287 浏览

java - 如何让 SSHJ 在非标准端口上启动出站 SFTP?

我正在这样做,它工作正常,但我希望能够在 22 以外的端口上访问 sshd。

0 投票
1 回答
744 浏览

java - 通过 SSH 向设备发送多个命令

我正在尝试使用 SSHJ 库向设备发送多个命令。可以选择以这种格式发送多个命令:

这可行,但在我的情况下并不总是可用。我在这里找到了其他建议,例如第二个答案。

当我尝试这个建议时,第一个命令工作正常,然后它在这个错误之间循环:

或者

使用的代码是:

如果需要,请备注我要连接的设备以​​及它将连接到的大多数设备是 Cisco 网络设备。

感谢您提供任何帮助。-贾罗德

0 投票
1 回答
594 浏览

java - sshj,从长时间运行的命令中读取 InputStream

我想从标准输出中读取长时间运行的命令。有一个程序,它向我发送一些输出,我必须发送一些响应。

问题是没有任何东西到达输入流。

我在做什么,正在执行命令,从命令中获取 InputStream 并尝试从那里读取。

在这里,is.available()始终为零。如果我在没有这种情况的情况下阅读,阅读将永远被阻止。

如何读取正在运行的程序的标准输出?

0 投票
6 回答
2682 浏览

java - 连接()时的 Android SSHJ 异常-“找不到 KeyFactory ECDSA 实现”

我正在尝试从我的 Android 应用程序打开一个 SSH 客户端会话。尝试连接到本地网络上的设备(Raspberry Pi)。我正在使用SSHJ库版本 0.10.0。它在ssh.connect()通话中失败,TransportException最终由 a 引起NoSuchAlgorithmException。请参阅下面的异常树。

异常树:

其他系统信息:

我使用 Android Studio 中的 maven 依赖支持来引入 SSHJ JAR,除了 SSHJ v0.10.0 jar 之外,它还引入了以下三个库...

不知道从哪里开始这个例外......任何建议表示赞赏!谢谢。

更新:2014 年 10 月 31 日

正如LeeDavidPainter所建议的,我包含了 SpongyCastle 1.51.0 JAR 并在顶部添加了这一行:

我现在在同一行遇到不同的异常:

另请注意,我也尝试了以下行,结果相同:

我的手机上有另一个应用程序,它基本上正在做我想要实现的目标——它称为RaspberryPiController——它通过 SSH 连接到您的 RPi,并使用用户名和密码进行身份验证。这工作正常,所以它似乎不是网络问题。

0 投票
1 回答
238 浏览

javafx - JavaFX 按钮触发 SSHJ 连接

这应该很简单,但我不确定我做错了什么。我有一个带有按钮的原始 GUI。按下该按钮时,我想启动 SSH 连接。

当我单击按钮时,我得到下面的调试代码 - 我没有通过初始化 ssh - 请帮助:

点击

0 投票
0 回答
2788 浏览

java - SSHJ 尝试启动会话导致 SSH_MSG_UNIMPLEMENTED

我在 Windows 机器上,我需要编写一些 Java 代码,通过使用 SSH 连接到远程 Solaris 机器,然后可以在其上执行命令并获取它们的输出,但是我在验证时遇到了一些问题。(我使用的是 SSHJ 0.8.1)

这是连接和启动会话的代码:

我希望这会产生有效的连接,因为尝试使用相同的代码(尽管使用不同的主机密钥验证器、地址、端口和凭据)连接到 Apache Karaf 实例是有效的。相反,这是我得到的输出:

此外,这是我在 Eclipse 中获得的堆栈跟踪:

PuTTY 能够使用相同的凭据连接到相同的地址和端口,没有任何问题,尽管它确实需要一些时间。我应该怎么做才能在这里与 Java 建立工作连接?