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

ssh - 使用多个密钥的 SSHJ 主机指纹验证

我们使用 sshj 库通过 ssh 从 java 连接到远程主机。为此,我们配置了在主机验证期间使用的单个指纹。

一段时间后,我们开始出现随机主机密钥验证错误。在多个 ssh 连接中,只有一些失败

据我了解,这是因为主机为不同的算法(、、、)配置了ssh-rsa多个ssh-ed25519密钥ecdsa-sha2-nistp256

  1. 这里正确的方法是什么,我们是否应该添加多个验证器,每个已知密钥一个?
  2. 为什么是随机的?ssh/sshj 使用什么方法来选择正在使用的密钥?
0 投票
0 回答
1277 浏览

java - 使用密钥认证的 JAVA SSH 客户端

我正在尝试连接到 SFTP 服务器,在我家的另一台笔记本电脑上运行(在 win 10 上运行)我正在使用SSHJ库。当我使用带密码的身份验证时,它工作正常:

但是当我尝试使用密钥进行身份验证时,我收到异常“用尽可用的身份验证方法”我不确定是否需要使用私钥或公钥,所以我尝试了两者(取自 SFTP 服务器),都返回同样的错误。这是我的代码:

任何提示我做错了什么?

0 投票
2 回答
2763 浏览

java - 使用 sshj 在 SFTP 服务器上解决不支持的 SETSTAT 请求

我正在尝试使用身份字符串 SFTP 到服务器:SSH-2.0-AWS_SFTP_1.0 使用 sshj 使用以下 Java 代码。

并得到错误

错误 SETSTAT 不支持

我了解 AWS 服务不允许在上传时设置时间戳,但我不知道需要进行哪些调整才能配置 SFTP 客户端。

问候康泰

0 投票
0 回答
146 浏览

sshj - 如何在 Java 中进行 SFTP(禁用 SSH 时)

我的公司已禁用 SSH,但允许使用 SFTP。

例如,“sftp”命令可以工作,但“ssh”不能。

他们可能在“/etc/ssh/sshd_config”中配置了类似的东西:

是否有无需打开 SSH 连接即可工作的 Java SFTP 客户端?

我正在使用 sshj,典型的模式不起作用:

上面的代码在“sshClient.connect()”处抛出异常:

0 投票
1 回答
190 浏览

java - Java SSHJ 库和启用日志记录

下面是我的 java 1.8 程序的示例部分。尝试进行身份验证时似乎失败了。它通过多种身份验证方法,然后宣布其用完。我想从 sshj 库中查看调试信息,以帮助我确定失败的原因:- 用户名、密钥交换或其他内容。我熟悉 log4j,我可以在我的代码中放置日志记录语句,但是我找不到一个示例(简单易懂),它告诉我如何将 log4j 连接到 sfl4j,然后告诉 sshj 使用记录器。

'''

'''

0 投票
1 回答
369 浏览

java - sshj应该如何连接ssh,这让我很困惑

虽然 sshj 的 github 里有例子,但是我不明白我在做什么。我使用以下代码尝试连接到我的主机,仅此而已

运行的结果是这样的

密钥文件的格式

不知道怎么办,jsch不支持这种格式的key文件

0 投票
1 回答
355 浏览

java - 获取 java.io.IOException:尝试将文件 XXXXXX 上传到路径 XXXXXX,但那是一个目录。使用 net.schmizz.sshj.SSHClient 时

在对远程服务器执行 SFTP 时出现此异常

以下是异常的堆栈跟踪

以下是正在使用的代码片段

我已经检查并确保本地服务器上的文件存在。远程服务器上的目录也存在。也尝试过使用 StatefulSFTPClient。远程服务器上也不存在与文件名同名的目录。

详细日志:

对于没有这样的文件:

WinScp 文件传输成功日志

0 投票
1 回答
297 浏览

java - 如何使用 SSHJ 从 SFTP 服务器获取预过滤的文件列表

我正在使用SSHJ SFTP 库从 SFTP 服务器获取文件列表。与服务器的连接非常慢,目录中有数万个文件。通常获取文件列表会以各种超时/套接字错误结束。

是否有可能告诉客户仅从例如检索文件列表。“.zip”文件,以便对性能产生积极影响?伪命令:sftpClient.ls("*.zip")

我知道有一种方法List<RemoteResourceInfo> net.schmizz.sshj.sftp.SFTPClient.ls(String path, RemoteResourceFilter filter)可以过滤列表,但据我了解,过滤只会发生在客户端?IE。客户端仍然会收到整个文件列表,然后它将被过滤。

有没有办法实现这一点,以便服务器只返回请求的名称?SFTP 协议甚至支持这个吗?

0 投票
0 回答
104 浏览

java - 在 Tomcat 中运行时出现 NoClassDefFoundError PKCS8EncodedKeySpec

com.hieronymus:sshj在版本0.31.0中使用在 Spring Boot 应用程序和数据交换服务器之间建立 ssh 连接。为了验证应用程序,使用由默认设置生成的私有 SSH 密钥ssh-keygen,没有密码保护。它以 pem 格式作为文件存储在本地文件系统中。

以下代码用于处理身份验证:

当我从 IntelliJ 或 fat jar 运行应用程序时,一切正常。但是,当我将其打包为 war 文件并将其部署到在 JDK 11 上运行的 Tomcat 9 服务器时,问题开始出现,我也使用它来开发它:

这确实让我很吃惊,因为PKCS8EncodedKeySpec它是“java 核心”的一部分。这些库显然能够解析文件,但在创建关键对象时却失败了。

Tomcat 是否以某种方式阻止部署的应用程序解析私有 SSH 密钥?我是否需要将密钥放在某个密钥库中并从那里加载它们?有没有人遇到过这个问题?

0 投票
1 回答
158 浏览

java - SSHJ中不同超时的含义

我正在尝试使用 SSHJ 从我的 Java 应用程序连接到 SFTP。存在几种不同的超时,但我找不到它们之间的区别。即使是官方文档也不是很有帮助。有人可以解释两者之间的区别吗?

提前致谢。