问题标签 [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 回答
1491 浏览

java - SSHJ+ExpectIt:无法发送多个命令

我正在使用 SSHJ 和 ExpectIt 将多个命令发送到托管在 Amazon EC2 上的虚拟机。我没有收到任何错误,但 ExpectIt 只执行第一个命令而忘记了其余的。你能找出我在这里做错了什么吗?

注意:此代码中省略了一些敏感(但与此问题无关)代码。

0 投票
1 回答
230 浏览

java - SSH 与 Java 中的命令和文件

我想在 Java 中运行 SSH,但我还没有弄清楚如何运行包含命令和文件的 SSH 语句。例如在标准终端中的命令:

希望通过 Java 库,而不是某种类型的 Runtime.exec()

0 投票
1 回答
349 浏览

java - 使用 SSHJ 连接到 Google Compute Engine 实例

我在 Google Compute Engine 中创建了一个实例,我需要使用 SSHJ 进行连接,但我没有得到。我可以使用 AWS 成功连接:

谷歌计算引擎做什么?

我使用 puttygen 创建了一个公钥和一个私钥。然后我访问了我的 Google Compute Engine 的控制台并导入了公钥。这样我就可以使用私钥访问腻子。

当我尝试使用上面定义的 exec 方法通过 SSHJ 访问时,出现错误:

有什么建议吗?

0 投票
1 回答
368 浏览

java - 从远程 HP-UX (Unix) 服务器到本地文件系统的 SCP(使用 sshj)

我想使用sshj库将数据从远程 HP-UX 服务器远程复制到本地文件系统。

此远程服务器上的数据具有以下形式:DATA_<YEAR>.dat。例如:

我使用的具体方法如下:

给定一个开始和结束年份(即19912001),我如何构造一个String作为remotePath参数传递来复制给定开始和结束年份之间的文件范围?

0 投票
0 回答
79 浏览

java - SSHJ - 命令被截断为 260 个符号

我在我的实现中使用 sshj 库。我正在连接到 Windows 机器,并且那里安装了 OpenSSH。比我发送的命令是:C:\folder1\folder2\aa.bat arguments 1 2 3 等等

但是执行失败。我的命令的整个长度是 270 个字符,但是在 p 程序日志中我看到该命令被截断为 260 个字符。你知道我怎样才能避免这种截断,看起来这是本机 Windows 问题,MAX_PATH 限制为 260?

0 投票
2 回答
4251 浏览

java - 在 Java 中使用 Jsch 和 Sshj 的 RSA SSH2 私钥问题

在这里,我正在尝试连接到远程机器以通过SFTP. 我们RSA SSH2 key在连接到远程机器时使用基于身份验证。

我尝试在以下 2 种方法中执行此操作,我都面临这两种方法的问题。

方法一:使用JSCH

例外:

方法 2:使用SSHJ

例外(不使用 BouncyCastle):

例外(使用 BouncyCastle):

我的私钥(id_rsa_2048_a):

我的公钥(id_rsa_2048_a.pub):

授权文件:

我不确定我的问题private key还是我实现的方式,我们已经将我们public key的远程机器共享了。使用 putty,我们可以使用SCP.

0 投票
0 回答
133 浏览

java - 使用 sshj 的 Ctrl + c

我正在使用 sshj 从我的 java 应用程序进行通信

这就像魅力一样,现在一旦我想使用相同的 sshj 终止这个进程( CTRL+ )。C我不知道,有什么命令可以做到吗?

0 投票
1 回答
223 浏览

scala - 使用 scala-ssh 下载文件后应用程序不会退出

我正在使用 scala-ssh 0.7.0 从远程服务器下载文件。

下载本身似乎是成功的(我可以找到下载的文件)。这是日志输出的最后一部分:

16:14:43.824 [main] TRACE net.schmizz.sshj.xfer.LoggingTransferListener --传输 100% 的 log-file.txt16:14:43.824 [main] INFO net.schmizz.sshj.common.StreamCopier -- 44.82421875 KiB 在 1.572 秒内传输(28.514134064885496 KiB/s) 16:14:43.825 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine --远程同意传输完成 16:14:43.826 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine -- 信令:传输完成 16:14:43.826 [main] TRACE net.schmizz.sshj.transport.Encoder -- 编码数据包 #10 : 5e 00 00 00 00 00 00 00 01 00 16:14:43.826 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote -- 从 1 消耗到 2097148 16:14:44.220 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 接收到的数据包 #14: 62 00 00 00 00 00 00 00 0b 65 78 69 74 2d 73 74 61 74 75 73 00 00 00 00 00 16:14:44.221 [阅读器] TRACE net.schmizz.sshj.transport.TransportImpl -- 收到包 CHANNEL_REQUEST 16:14:44.221 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- 得到 chan 请求exit-status16:14:44.222 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 收到的数据包 #15: 60 00 00 00 00 16:14:44.222 [reader] TRACE net.schmizz.sshj.transport.TransportImpl --收到包 CHANNEL_EOF 16:14:44.222 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- 得到 EOF 16:14:44.223 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 收到数据包 #16: 61 00 00 00 00 16:14:44.223 [reader] TRACE net.schmizz.sshj.transport.TransportImpl -- 收到数据包 CHANNEL_CLOSE 16:14:44.223 [main] DEBUG net.schmizz.sshj.connection.channel .direct.SessionChannel -- 发送关闭 16:14:44.223 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- Got close 16:14:44.224 [main] TRACE net.schmizz.sshj.transport .Encoder -- 编码数据包 #11:61 00 00 00 00 16:14:44。225 [main] DEBUG net.schmizz.concurrent.Promise -- 等待 <> 16:14:44.225 [reader] DEBUG net.schmizz.sshj.connection.ConnectionImpl -- 忘记session频道 (#0) 16:14:44.225 [reader] DEBUG net.schmizz.concurrent.Promise -- 将 <> 设置为SOME

我的代码很简单:

现在,虽然下载成功完成,并且应用程序在下载命令后继续执行,但应用程序本身并没有退出。

有任何想法吗?

0 投票
1 回答
2508 浏览

java - net.schmizz.sshj.transport.KeyExchanger.waitForDone 超时(KeyExchanger.java:160)

我有一个使用net.schmizz.sshjSFTP 库的夜间工作。

我怀疑我们 SFTP 进入的服务器发生了变化。但是,我无法确定确切的变化是什么。我也不能在生产服务器之外复制它。所以我正在寻找根本原因的洞察力或如何重现以下错误

net.schmizz.sshj.transport.TransportException: Timeout expired at net.schmizz.sshj.transport.TransportException$1.chain(TransportException.java:33) at net.schmizz.sshj.transport.TransportException$1.chain(TransportException.java:27) at net.schmizz.concurrent.Promise.retrieve(Promise.java:139) at net.schmizz.concurrent.Event.await(Event.java:103) at net.schmizz.sshj.transport.KeyExchanger.waitForDone(KeyExchanger.java:160) at net.schmizz.sshj.transport.KeyExchanger.startKex(KeyExchanger.java:155) at net.schmizz.sshj.transport.TransportImpl.doKex(TransportImpl.java:247) at net.schmizz.sshj.SSHClient.doKex(SSHClient.java:735) at net.schmizz.sshj.SSHClient.onConnect(SSHClient.java:723) at net.schmizz.sshj.SocketClient.connect(SocketClient.java:54) at net.schmizz.sshj.SocketClient.connect(SocketClient.java:80)

据我所知,我们通过java.net.Socketok 连接,然后超时等待密钥交换在此代码中完成

0 投票
1 回答
40 浏览

java - Netbeans 使用空的“名称等价物”自动克隆我的基于 jar 的包

我是 java 编程新手,所以我只是想用 ssh 尝试一些东西,了解它是如何工作的,所以我下载了 这个 Stack Overflow 答案中提到的 java 库 。在将此库导入 netbeans 的尝试多次失败后。我决定简单地将文件放入我的src文件夹中。但是 Netbeans ide 将 jar 文件中的包与它们的“名称等效”空包一起复制,这会阻止我访问包中的类,因为 IDE 和代码完成会自动看到空包。我搜索网络无法找到有关此问题的任何信息。如果有任何日志文件,我已准备好共享任何日志文件。这是我关于这种情况的屏幕截图。 截图附件

操作系统:Linux Mint Rosa

IDE:Netbeans 8.1 Linux 版

编辑:我已经看过这些主题

如何在 NetBeans 中使用 .jar 文件?:起初我试过这个,在这个解决方案中,netbeans没有复制任何空包但是当我开始输入类似import sshj.foo.*;自动完成的东西时找不到任何东西,而且如果我尝试将整个路径写入特定类在特定的包中 IDE 给了我一个错误,您要查找的包不存在。其次,我尝试过这个 并在第一次尝试时遇到了同样的问题。我可以看到包、类和其他东西,但仍然可以'不要在导入项目的随机类中找到它们。

如何在我的 Netbeans 项目中包含外部 jar:我已经尝试过,而且正如他们所说,运行得很好,没有错误,但是当我尝试访问类时仍然遇到同样的问题,所以没有任何改变。

如何在 NetBeans 中添加 JAR:在本主题中,所有回复都解释了库的类型。甚至与我的问题无关

如何使用 .jar 文件中的类?:我也尝试在回复中进行解释,并将我的 jar 文件传输到已编译的 .class 扩展文件中,这也没有解决我的问题。