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

java - Expectit 没有找到我期望的字符串

我正在尝试将 expectit 库与 sshj 一起使用,如下所示:

我正在执行的命令是“sleep 5; rm -i test.txt”,我得到以下输出:

有人会认为一切都应该正常工作,因为 LoggingAppendableAdapter 以及内部日志记录报告字符串“rm:删除常规空文件'test'?”。

关于我可能做错的任何建议?

0 投票
1 回答
151 浏览

sshj - SSHJ:exec 挂起或丢失数据

我已经使用 Trilead 和 Jsch 作为 Hg 的 SSH 客户端,现在我正在尝试使用 SSHJ,因为它似乎提供了更现代的密钥支持。草图代码如下

startThreadToCopyInputStream方法将所有字节从本地 Hg 进程复制到cmd.getOutputStream()然后完成输入流。但与 Trilead 和 JSch 不同的是cmd.getInputStream(),它们cmd.getErrorStream()始终保持开放状态。

我现在将代码更改为:

这在 90% 的情况下都可以正常工作,但有时 Hg 会抱怨服务器提前关闭了连接。cmd.close()由于服务器进程已完成,我应该如何知道何时可以调用?

0 投票
1 回答
1546 浏览

java - SSHJ 无法连接远程 Linux 服务器抛出 UserAuthException: Exhausted available authentication methods

我正在尝试使用sshj运行以下 Java 代码:-

但它抛出异常 -

我可以通过 Putty 使用相同的凭据连接主机。我正在使用 JDK“1.8.0_151”。这里有什么问题?

0 投票
0 回答
754 浏览

java - 尝试使用 sshj 连接到远程服务器

我正在寻找使用 sshj 连接到远程服务器并执行一些命令。我要执行的命令按顺序排列: 1. 通过 putty 登录,输入用户名和密码 2. 然后 sudo su - oracle 3. 然后再次输入密码 4. 然后“sqlplus /nolog” 5. 然后“以 sysdba 身份连接” 6 . 然后是几个 sql 命令 7. 然后退出并执行 imdmp

我正在寻找最好/最简单的方法来解决这个问题。这是我到目前为止所做的。

一世

0 投票
1 回答
1607 浏览

java - 无法达成和解:问题

我正在尝试为 sftp 创建 jar。我使用 SSHJ (0.23.0) 并且在测试服务器上一切正常,但问题是当我尝试在生产服务器上运行它时。

我的生产服务器上的 Java 版本是 7u60。

SSHJ 日志:

这是类似的问题,但是这个人开始使用 Jsch。

Jsch(在我的例子中是 0.1.54,Java 7u60)在测试服务器上也可以正常工作,但在生产服务器中它给了我以下例外:

Jsch日志:

我希望有一个人可以帮助我。

0 投票
2 回答
5041 浏览

java - SSH 命令执行失败并出现异常 - “net.schmizz.sshj.connection.ConnectionException:抛出连接重置异常”

当通过 SSH 连接执行命令时,命令执行通常会失败并出现异常 - “net.schmizz.sshj.connection.ConnectionException: Connection reset Exception is throw”。

问题描述:

我使用 net.schmizz.sshj.SSHClient 创建了一个到主机的 SSH 连接实例。我使用这个 SSH 连接执行了一堆命令,最后关闭了连接。

在检查我的 java 代码执行日志时,我经常会看到错误

java代码执行将继续运行。

但是当使用 SSH 连接执行命令时,如果这个 java.net.SocketException: Connection reset Exception 来了,我的 java 代码执行就终止了。

问题:

SSH连接通常会断开并重新连接,但是当我通过此SSH连接执行命令时,如果发生断开连接,它永远不会重新连接net.schmizz.sshj.connection.ConnectionException:抛出连接重置异常。

我的查询:

如何克服我的 Java 代码中的 ssh 断开连接问题,尤其是在通过 SSH 连接执行命令时?

谢谢。

0 投票
2 回答
1152 浏览

optimization - 如何避免 SFTP 上的重复文件处理

我们有一个 Java 应用程序,它每隔 30 分钟从客户端 FTP 轮询文件,然后扫描所有文件,查看所有文件与应用程序内部配置的模式匹配,并根据该模式相应地处理文件。这里的问题是我们必须每 30 分钟进行一次线性扫描,这花费了太多时间。由于我们不想处理重复的文件,所以我们在最后维护文件的哈希码,然后我们检查哈希码是否与现有的哈希码匹配。由于权限,无法删除已处理的文件。在此处需要有关如何优化此功能的帮助。

我们使用 SSHJ 库进行 SFTP 通信。

0 投票
1 回答
677 浏览

java - SSHJ:如何使用 StatefulSFTPClient

我很困惑......我正在使用 com/hierynomus/sshj SFTP-lib,下面的代码给了我 ClassCastException:

我需要 StatefulSFTPClient 但我不知道如何使用它...我是否需要扩展 SSHClient 类:

0 投票
0 回答
736 浏览

java - 使用 SSHJ 从 SFTP 下载文件并放入项目类路径并允许 MSSQLServeContainer 加载它

我正在与 docker 一起运行我的 DAO 单元测试,该测试会命中驻留在 docker 容器中的 SQLServer 数据库。

STEP1:我希望我将最新的 BAK 文件从我的远程服务器(安装了 docker 的 Linux 机器)拉到我的项目类路径(src/test/resources),这样我就可以在它开始之前使用 MSSQLServerContainer 来获取它容器。

所以我正在做一个 SSHJ 来获取如下文件:

并像下面这样启动容器:

所以现在我的问题是,它失败并出现以下错误:

似乎在容器启动之前它不会将文件刷新到类路径。有没有办法我可以在下面的行sftp.get(remoteServerFileLocation, "src/test/resources"); 被执行。以便在容器启动时它可以在类路径上使用。

在容器启动之前,它必须将 BAK 文件放入src/test/resources文件夹,以便它可以启动容器并从类路径中选择文件并运行单元测试。

0 投票
3 回答
859 浏览

java - 线程“阅读器”中的异常 java.lang.NoClassDefFoundError: org/bouncycastle/crypto/ec/CustomNamedCurves

我使用“net.schmizz.sshj.SSHClient”包连接到服务器。下面是我的代码:

但是,我遇到了一个错误:“线程中的异常”阅读器“java.lang.NoClassDefFoundError:org/bouncycastle/crypto/ec/CustomNamedCurves ”。我将 bcprov-jdk15on-1.49 和 bouncycastle.jar 添加到我的类路径中。请帮我解决这个错误。

完全例外: