问题标签 [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.
java - SSHJ+ExpectIt:无法发送多个命令
我正在使用 SSHJ 和 ExpectIt 将多个命令发送到托管在 Amazon EC2 上的虚拟机。我没有收到任何错误,但 ExpectIt 只执行第一个命令而忘记了其余的。你能找出我在这里做错了什么吗?
注意:此代码中省略了一些敏感(但与此问题无关)代码。
java - SSH 与 Java 中的命令和文件
我想在 Java 中运行 SSH,但我还没有弄清楚如何运行包含命令和文件的 SSH 语句。例如在标准终端中的命令:
希望通过 Java 库,而不是某种类型的 Runtime.exec()
java - 使用 SSHJ 连接到 Google Compute Engine 实例
我在 Google Compute Engine 中创建了一个实例,我需要使用 SSHJ 进行连接,但我没有得到。我可以使用 AWS 成功连接:
谷歌计算引擎做什么?
我使用 puttygen 创建了一个公钥和一个私钥。然后我访问了我的 Google Compute Engine 的控制台并导入了公钥。这样我就可以使用私钥访问腻子。
当我尝试使用上面定义的 exec 方法通过 SSHJ 访问时,出现错误:
有什么建议吗?
java - 从远程 HP-UX (Unix) 服务器到本地文件系统的 SCP(使用 sshj)
我想使用sshj库将数据从远程 HP-UX 服务器远程复制到本地文件系统。
此远程服务器上的数据具有以下形式:DATA_<YEAR>.dat
。例如:
我使用的具体方法如下:
给定一个开始和结束年份(即1991
和2001
),我如何构造一个String
作为remotePath
参数传递来复制给定开始和结束年份之间的文件范围?
java - SSHJ - 命令被截断为 260 个符号
我在我的实现中使用 sshj 库。我正在连接到 Windows 机器,并且那里安装了 OpenSSH。比我发送的命令是:C:\folder1\folder2\aa.bat arguments 1 2 3 等等
但是执行失败。我的命令的整个长度是 270 个字符,但是在 p 程序日志中我看到该命令被截断为 260 个字符。你知道我怎样才能避免这种截断,看起来这是本机 Windows 问题,MAX_PATH 限制为 260?
java - 使用 sshj 的 Ctrl + c
我正在使用 sshj 从我的 java 应用程序进行通信
这就像魅力一样,现在一旦我想使用相同的 sshj 终止这个进程( CTRL+ )。C我不知道,有什么命令可以做到吗?
scala - 使用 scala-ssh 下载文件后应用程序不会退出
我正在使用 scala-ssh 0.7.0 从远程服务器下载文件。
下载本身似乎是成功的(我可以找到下载的文件)。这是日志输出的最后一部分:
16:14:43.824 [main] TRACE net.schmizz.sshj.xfer.LoggingTransferListener --传输 100% 的
log-file.txt
16: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-status
16: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
我的代码很简单:
现在,虽然下载成功完成,并且应用程序在下载命令后继续执行,但应用程序本身并没有退出。
有任何想法吗?
java - net.schmizz.sshj.transport.KeyExchanger.waitForDone 超时(KeyExchanger.java:160)
我有一个使用net.schmizz.sshj
SFTP 库的夜间工作。
我怀疑我们 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.Socket
ok 连接,然后超时等待密钥交换在此代码中完成
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 扩展文件中,这也没有解决我的问题。