java - SSHJ 和 Maven 阴影插件

标签 java maven bouncycastle maven-shade-plugin sshj

在 Eclipse 中测试 SSHJ,一切看起来都很好。但是当我使用 Maven Shade 插件打包 SSHJ 时,出现以下错误:

Exception in thread "main" net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
at net.schmizz.sshj.SSHClient.auth(SSHClient.java:217)
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:316)
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:365)
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:295)
at no.f12.SshRepository.executeTaskOnHost(SshRepository.java:23)
at no.f12.SshService.serviceCommand(SshService.java:22)
at no.f12.App.main(App.java:29)

添加

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

将错误消息更改为:

Exception in thread "main" net.schmizz.sshj.transport.TransportException: Unable to reach a settlement: [] and [aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-gcm@openssh.com, aes256-gcm@openssh.com, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, arcfour, rijndael-cbc@lysator.liu.se]
at net.schmizz.sshj.transport.Proposal.firstMatch(Proposal.java:165)
at net.schmizz.sshj.transport.Proposal.negotiate(Proposal.java:147)
at net.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:239)
at net.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:364)
at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:478)
at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:127)
at net.schmizz.sshj.transport.Decoder.received(Decoder.java:195)
at net.schmizz.sshj.transport.Reader.run(Reader.java:72)

知道如何解决这个问题吗?

关于为什么我想使用阴影的一些背景...我试图达到一个点,即 Java 的使用和小型实用程序的分发非常简单。所以我使用以下命令创建一个真正可执行的 jar: https://github.com/brianm/really-executable-jars-maven-plugin 。这使我能够创建一个可执行文件来分发并添加到用户的路径中。有点像 Go 有一个包含所有依赖项的二进制文件。

最佳答案

我遇到了这个问题。我最终放弃了尝试将所有东西都放入一个大“uberjar”中。

相反,我使用 maven-assemble-plugin 组装了所有 jar,然后提取并将它们添加到类路径中以便执行,例如'java -cp all-needed-libs/* com.company.MainClass'。

关于java - SSHJ 和 Maven 阴影插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19815748/

相关文章:

java - maven:如何为本地安装的依赖指定 "systemPath"?

java - 在 Equinox 中安装签名的 jar

java - 日历提供程序 : Permission Denial on Android 8

java - 如何播放多个Clip实例?

maven - Apache zeppelin 在 zeppelin-web 中使用 Bower 构建过程失败

java - 如果 junit 测试失败,如何停止 Maven 构建?

java - iText/BouncyCaSTLe ClassNotFound org.bouncycaSTLe.asn1.DEREncodable 和 org.bouncycaSTLe.tsp.TimeStampTokenInfo

gradle:排除制作 fatJar 的依赖

java - Jasper Reports 以 xlsx、docx、csv、rtf 等格式打印未配置的报告

java - Android图像缩放布局问题