问题标签 [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 - “新 SSHClient.authPublickey(String,KeyProvider)”方法中的 NoClassDefFoundError
我正在尝试将我的本地主机与 sshj 库提供的类连接起来,用于教育目的。所以我编写了上面的代码,但方法存在问题new SSHClient.authPublickey(String userName,KeyProvider... keys)
。我跟踪了我的代码的每一行,不仅仅是我也跟踪的sshj
库,但我不能找到任何有用的东西。我在下面的项目中提供错误代码、从我的 IDE( NetBeans 8.1
) 生成的堆栈跟踪、我的源代码和导入的 jar。
Jar 文件:(由于 stackoverflow 信誉限制,我不能共享超过 2 个链接)
1. sshj-0.2.3.jar
2. slf4j-api-1.7.21.jar 链接 =二进制和源代码
3. bcprov,bcpkix,bcpg,bcmail(jdk 1.5 - 1.8 版本文件) 链接 =签名的 Jar 部分
源代码 :
错误代码 :
堆栈跟踪行是 sshClient.authPublickey(uName, pubkey)
SSHClient.java 1. 分支
堆栈跟踪行是 authPublickey(username, Arrays.asList(keyProviders));
SSHClient.java 2. 分支
身份验证(用户名,上午);
SSHClient.java 3. 分支
我已经用没有密码的 ssh-keygen 生成了我的 ssh 公钥,我也有密码保护的 pubkey。如果我用它尝试同样的事情,错误仍然是一样的。如果需要任何其他的东西我准备分享只是说出来。
java - 如何使用 JAVA 将字符串回显到 SSH
我正在尝试使用基于公钥/私钥的身份验证通过 SSH 执行远程查询。在本地主机和远程服务器之间共享公钥后,以下命令可以正常工作,并在 bash shell 上将所需的输出作为字符串提供给我。
如何使用 JSCH 或 SSHJ 或任何其他类似库通过 JAVA 实现相同的目标
这是我迄今为止使用 SSHJ 尝试过的,但它对我不起作用(连接成功但没有结果)
java - sshj:如何在命令执行时从长时间运行的命令中读取 InputStream
目前我正在使用以下命令通过 ssh 执行命令:
但是,要查看输出,我需要等到命令完成。
如何获得“实时”响应?
我想我可以读取输入流,直到出现行尾,然后打印该行;但是,库中是否已经有一些方法可以帮助我解决这个问题?
java - 如何避免 hierynomus ssh 中的非法密钥大小警告
我已禁用主机密钥检查 ssh 但它会记录非法密钥大小警告
java - Java SSHJ - 在验证程序中添加到 known_hosts 文件
我正在使用 SSHJ 执行远程命令,当主机在 SSHknown_hosts
文件中时,我可以成功执行该命令。但是,如果主机不在此文件中,那么我希望用户可以选择添加它。
我相信这样做的方法是创建一个自定义HostKeyVerifier
(如下所示的模板)。但是,我正在努力将其转换PublicKey
为AAAAB3Nz...cTqGvaDhgtAhw==
格式以使我能够将主机附加到known_hosts
文件中。谁能指出我正确的方向?
java - 如何将 bouncycastle 实现到一个罐子中?
我在一个项目中使用 SSHJ 库。SSHJ 库使用了 bouncycastle 加密。
在 Eclipse 中一切都很好,但是在我使用 one-jar 将所有内容打包到单个 jar 包中之后,我遇到了 bouncycastle lib 的问题。bcprov-jdk15on-1.51.jar 包含在 /lib 中的 JAR 包中,所有其他库以及例如。sshj.jar。
在日志上我有这些:
找不到安全提供程序类“org.bouncycastle.jce.provider.BouncyCastleProvider”
和这个
警告:禁用高强度密码:密码强度明显受 JCE 政策限制
借助 SFTP 连接的功能,可以实现:
net.schmizz.sshj.transport.TransportException:无法达成和解:[diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1] 和 [diffie-hellman-group-exchange-sha256]
我试过的:
- 将 Java JCE 安装到 /lib/security
- 不知道为什么上面的消息仍然弹出关于禁用的高强度密码?
- 试过“Security.addProvider(new BouncyCastleProvider());” 在代码中
这就是所有“按预期”工作的方式:
- 通过将“bcprov-jdk15on-1.51.jar”放入 JAVA_HOME\lib\ext\
- 不幸的是,这对我来说是最后的选择。在 Java 版本更新的情况下维护库我会非常头疼。
那么,显然 BC 库存在一些类路径问题?在某个地方,我读到了一些关于签名安全提供程序库有实现问题的信息,不太明白那个......也许这也是这里的原因?
任何想法如何解决这个问题?感谢您对此问题的任何帮助,谢谢!
编辑:我的 build.xml 实现了建议的代码签名:
java - BouncyCastle 需要读取 ecdsa-sha2-nistp256 类型的密钥
我正在使用 sshj (0.19.1) 使用带有 SSH2 连接的 scala 应用程序。我可以从 Eclipse 中正常连接,但是从一个胖 jar 运行应用程序,我遇到了一些错误。我最初的错误是:
我已将 US_export_policy.jar 和 local_policy.jar 添加到 $JAVA_HOME/lib/security。我添加了以下内容以尝试将 bouncycastle 注册为提供者,
但我仍然收到以下错误:
我将 jar 运行为java -cp ../lib/bcprov-jdk15on-1.51.jar -jar <my jar>
,因为据我了解,您不能将 bouncycastle 作为提供程序的 fat jar 的一部分包含在内。但我不确定我错过了什么,我无法将其注册为提供者。任何帮助,将不胜感激。
jakarta-ee - sshj 或 jsch,部署到 Wildfly 10.1 时出现 java.lang.NoClassDefFoundError
我已经尝试了这两个库,并且在部署我的应用程序时,Wildfly 会抛出java.lang.NoClassDefFoundError
正在使用的任何类。
Wildfly 中是否存在阻止它们使用的这些库/或 API 的东西?
java - 如何修改 net.schmizz.sshj 日志记录级别?
到目前为止,我可以更改默认配置的记录器级别或为 sshj 库禁用它吗?
当我尝试上面的代码时,我遇到了这些问题: