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

java - SSHJ 和多线程

我有一个关于 SSHJ 和多线程的问题。我有一个使用 SSHJ 使用 SSHJ SSHExec 类在远程服务器上执行命令的类,它是线程的扩展。我这样做是因为某些远程命令可能需要一段时间才能运行,并且我想并行运行它们,因为它们不会相互影响。

因此,在我的设置中,我有可以启动多个版本的 class_B 的 class_A,这是执行 SSH 命令的程序。当我将 class_A 配置为仅启动 class_B 的一个实例时,一切正常。但是,当我将 class_A 配置为启动多个 class_B 实例时,它会失败并出现以下错误。

在线程中启动多个 SSHExec 会话是否有问题?如果不是,我可能做错了什么?

0 投票
1 回答
435 浏览

java - 从 sshj 输入流中读取时如何获得“输入提示”?

我正在尝试使用 sshj 为 android 编写 ssh 应用程序。我可以毫无问题地连接到服务器并从输入流中读取,得到如下信息:

通常我希望现在得到格式为 user@host:~$ 的输入提示,输入流就在这里结束。我能够毫无问题地写入 shell 并执行命令,但我真的很担心没有得到输入提示,因为知道何时写入输出流和正确格式化很有帮助。当我执行命令时,提示符被写入输入流,它看起来像这样:

我尝试使用 readline() 和 read() 进行读取,并检查流是否有任何数据可供读取。

有什么方法可以让我在不执行命令的情况下接收来自输入流的提示?

0 投票
1 回答
970 浏览

java - 使用 SSHJ 连接到 AWS EC2 实例

我对此有很多问题。

我有以下代码

第一个 addHostKeyVerifier 使用 AWS 控制台上的指纹,注释掉的那个是它一直告诉我它失败的那个。我打算从哪里获得正确的密钥。

如果我使用第二个密钥,它会通过验证然后失败。

我正在使用 SSHJ 版本 0.8.1

0 投票
1 回答
1425 浏览

java - 将远程文件流式传输到文件对象中

如果有人知道如何将远程文件直接流式传输到文件对象中的快速方法,那么无需将文件临时存储在计算机上,将不胜感激!到目前为止,我从远程 ios 设备复制文件如下(使用 net.schmizz.sshj):

如果有人对解决方案的代码感兴趣:

正如 Nutlike 在他的回答中提到的,最好使用InMemoryDestFile. 所以创建以下类:

...在您执行下载操作的方法中,创建新类的实例:

并访问输出流:

此致

0 投票
1 回答
449 浏览

java - 使用 Java SSH API 时 sqlplus 缺少输出

我有一个执行 sqlplus 命令的 shell 脚本 (bash),当我从终端(或 PuTTY 或 Xshell 等 SSH 客户端)运行它时,它运行良好,这意味着我可以读取它的输出。现在我创建了一个 Web 界面,用户可以在其中启动此脚本,但执行失败,因为似乎没有执行相同的 sqlplus。看看我创建的以下简化示例:

测试外壳脚本(test.sh):

选择.sql:

在终端中生成的输出:

在 Web 客户端上生成的输出(到目前为止,我尝试将 Ganymed SSH-2 用于 Java 和 sshj,产生相同的结果):


如您所见,只有简单的 echo 命令生成了输出。sqlplus 输出发生了什么?有什么遗漏吗?

提前感谢您的帮助!

0 投票
2 回答
10181 浏览

ssh - net.schmizz.sshj.userauth.UserAuthException:用尽可用的身份验证方法

第一次询问stackoverflow,也使用sshj。除了 sshj 提供的示例之外,我还没有真正找到任何好的资源来帮助使用这个 API。

我一直在尝试使用 sshj 进行远程端口转发并且遇到了这个错误。

我用虚拟机测试了身份验证,但没有使用公钥。我将使用它连接到我知道登录名的 EC2 实例。

可能不是最好的(甚至是正确的)方法。

0 投票
1 回答
616 浏览

sshj - 如何使用 sshj 在不使用本地端口转发的情况下通过中间服务器进行隧道传输

我正在尝试使用sshj通过网关(跳转点)服务器进行隧道传输:

A -> B -> C

需要注意的是,我需要在不设置本地端口转发的情况下执行此操作。我需要与服务器 B 建立直接连接,然后与服务器 C 建立另一个 ssh 连接。

0 投票
1 回答
1554 浏览

java - 自动关闭和断开 java sshj 会话

我正在为 java 使用 sshj 库。

我需要在远程服务器上打开一个 ssh 会话,执行一个可以运行几分钟的命令,然后继续在我的 java 代码中执行。一旦在远程服务器上运行的命令完成,我希望 ssh 会话关闭,并且 sshclient 断开连接。

我看过以下代码示例:

基本上我不想等待命令完成(没有cmd.join调用),并且我需要在命令退出后自动调用session.close()and 。ssh.disconnect()这可能吗?

0 投票
1 回答
1080 浏览

java - sshj 使用 nohup 执行脚本

我需要通过 sshj 执行一个 shell 脚本并在不等待脚本完成的情况下断开连接。该脚本可能需要很长时间才能完成,因此我将创建额外的 Java 代码来定期检查脚本的结果。如何在不等待 shell 脚本完成的情况下断开 sshj 会话?

0 投票
1 回答
2063 浏览

ssh - jclouds publickey auth failed - 用尽了可用的身份验证方法

我一直按照 jcloud 示例https://github.com/jclouds/jclouds-examples/tree/master/compute-basics的说明进行操作。我安装了maven和程序。我看到在 Amazon 上创建了虚拟机,但是添加节点末尾的“echo hello”测试失败了,尝试执行“exec ls”也是如此。我添加了一个用 puttygen 生成的随机 id_rsa。看起来代码告诉它使用它,但亚马逊使用的是不同的密钥?