问题标签 [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 中的“[HOST_KEY_NOT_VERIFIABLE] 无法使用指纹验证 `ssh-rsa` 主机密钥”
我对 sshj 有一个奇怪的问题(我正在使用 sshj v0.6.0),我需要一些人的帮助。使用公钥进行身份验证在某些机器上工作正常,但在其他机器上不能正常工作,我看到以下错误。
我能弄清楚的唯一区别是,有问题的 UNIX ID 即 coonradt 似乎在 ~/.ssh/config 下仅在触发以下错误的框上具有以下列出的配置设置
从上面的配置文件中,我了解到有问题的 ID 应该使用协议 1,2,我怀疑这可能与我的失败有关(我不太确定,但这只是一种预感)
对于可以正常工作的所有其他 UNIX ID,我没有任何这样的配置文件。
PS:我无法更改 UNIX ID“coonradt”的配置,因为中央 hudson 服务器正在使用此 ID。
如果有人可以帮我建议这里可能有什么问题,将不胜感激
以下是我看到的错误:
java - 如何保持 SSH 连接可用?
我正在编写一个使用 sshj 库进行 SSH 连接的应用程序。用户从菜单打开连接对话框,输入登录数据并单击连接按钮建立连接。然后用户从不同的面板和框架执行各种操作。我的问题是:在用户单击“断开连接”按钮之前,我应该在哪里保持此连接以使其可用于需要它的每个面板和框架?我考虑过一些自定义类中的静态字段,但我不相信这样做。你有什么想法?
java - SSHJ - 密钥对登录到 EC2 实例
我有一个 pem 文件,看起来像 SSHJ 测试中的那个(虽然我没有看到它被引用):https ://github.com/shikhar/sshj/blob/master/src/test/resources/hostkey.pem . 只需尝试通过 pem 文件对 EC2 实例进行身份验证(读取为字符串),但遇到了麻烦。有人做过吗?
错误如下:
编辑:仍然没有运气。AWS为登录生成的私钥一定有问题吗?
sshj - SSHJ 在 join() 上永远挂起
我使用 SSHJ 执行一些命令,我使用这种方法:
在我执行此命令之前它运行良好:
在这种情况下,整个程序挂起
当然,它开始的过程已经开始。从 shell 执行的同一行也会立即返回。
知道为什么以及如何克服这个问题吗?
编辑:当我不加入()但读取命令的 sysout(使用 commons-io)时,也会发生同样的情况:
java - 如何使用 SSHJ 通过 SCP 流式传输文件?
我正在使用 SSHJ 库(https://github.com/shikhar/sshj)。
我可以使用sshClient.newSCPFileTransfer();
来获取我的SCPClient
对象,但是调用scpClient.download()
需要一个字符串作为目标文件的路径或一个 LocalDestFile 对象。我想要的只是打开一个流来下载文件。有没有办法使用 SSHJ 轻松做到这一点?
我查看了 LocalDestFile 的不同实现,但似乎没有任何东西适用于这个用例。
特定用例是下载远程文件并将其流式传输到客户端的浏览器以获取 Web 应用程序。我必须为此使用 SCP,因此想使用 SSHJ 库。
java - 如何使用 SSHJ 保持 SSH 连接处于活动状态?
我正在开发一个使用 SSHJ 进行 SFTP 传输的库。由于请求很频繁,我想知道是否可以保持连接打开。
显然,如果服务器经常超时连接,这将一事无成。由于我无法控制服务器,因此我必须保持连接处于活动状态:使用常规 SSH 客户端,我可以指定 aServerAliveInterval
并让客户端为我执行此操作。
我想对 SSHJ 做同样的事情,但我不知道要发送什么消息。
SSH手册只是指出ServerAliveInterval
以秒为单位设置超时间隔,如果在此之后没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器响应。
所以我想知道:发送了什么消息?如何通过 SSHJ 重现此消息?
fingerprint - sshj 示例('exec'):无法使用指纹验证 `ssh-rsa` 主机密钥
我正在尝试编写一个 java 程序,它将通过 ssh 连接并在工作中的服务器(redhat linux)上做一些事情。我的盒子是窗户。我阅读了有关 sshj 的信息,并且正在尝试使示例正常工作。我已经处理了大多数依赖项,现在我在处理公钥/私钥时遇到了错误,不幸的是我也不太了解(是的,这是新手的完美风暴!)。这是错误:
线程“主”net.schmizz.sshj.transport.TransportException 中的异常:[HOST_KEY_NOT_VERIFIABLE] 无法使用端口 22 上的ssh-rsa
指纹验证主机密钥5f:d6:94:00:9e:ec:7e:34:6d:d0:d3:76:df:5e:dd:3d
myserver
这是代码:
任何帮助将不胜感激,谢谢!
java - sshj exec 没有按我预期的方式显示结果
我试图从 Java SSH 到服务器并运行多个命令。这些命令似乎工作正常,但我没有在 Java 中得到我想要的结果。
这是我的代码片段
这是我看到的输出。我认为这与 LocalWindow 大小有关,但我不知道如何解决它。这仅在我使用具有大量屏幕输出的 ssh 命令时发生(或似乎发生)
这是一个小片段,我得到了 100 行左右
我想看到的是 ssh 命令的屏幕输出,可能很冗长
java - 使用 SSHj 进行 SSH 端口转发
我正在尝试创建一个隧道以使用支持 SSH 的防火墙后面的服务。我想要一个完整的 java 解决方案,但我似乎无法让它工作。我找到了这个github 片段,并在此基础上创建了以下代码来保持后台线程为我提供隧道:
问题是,如果我连接到像“10.0.3.96”这样的远程 SSH 服务器,它就不起作用。如果我在本地主机上使用本地 SSH 服务器,它将起作用。运气好的话,我一直在通过不同的配置并尝试调试,但我无法掌握 SSHj 包内部发生的情况。
现在它不必是 SSHj 解决方案,但这是首选,因为代码的其他部分已完全实现并使用 SSHj,我不想在一个项目中混合两个 SSH 包。
谢谢你的帮助。
java - How to connect to a remote machine with username and password using sshj java api?
How to connect to a remote machine with username and password using sshj java api?
I tried this code. What is the problem with this code?
It is throwing this following error.
net.schmizz.sshj.transport.TransportException: [HOST_KEY_NOT_VERIFIABLE] Could not verify
ssh-rsa
host key with fingerprint********
for192.168.0.1
on port 22