- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当通过 SSH 连接执行命令时,命令执行通常会失败并出现异常 - “net.schmizz.sshj.connection.ConnectionException:抛出连接重置异常”。
问题描述:
我使用 net.schmizz.sshj.SSHClient 创建了到主机的 SSH 连接实例。我使用此 SSH 连接执行一系列命令,最后关闭连接。
在检查我的java代码执行日志时,我经常会看到错误
2018-04-12T06:15:23.288Z ERROR n.s.s.t.TransportImpl [die:589] [reader] - Dying because - {}
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at net.schmizz.sshj.transport.Reader.run(Reader.java:50)
2018-04-12T06:15:23.288Z INFO n.s.s.t.TransportImpl [notifyDisconnect:182] [reader] - Disconnected - UNKNOWN
java代码执行将继续运行。
但是当使用SSH连接执行命令时,如果出现java.net.SocketException: Connection reset Exception,我的java代码执行就会终止。
2018-04-11T12:02:51.755Z INFO c.v.v.u.SSHUtil [executeRemoteSSHCommand:861] [main] - Successfully executed 'tar -C /usr/local/ -zxvf /usr/local/VMware-GuestSDK-10.2.0-8225092.tar.gz --no-same-owner' command on remote ssh host
2018-04-11T12:03:18.121Z ERROR n.s.s.t.TransportImpl [die:589] [reader] - Dying because - {}
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at net.schmizz.sshj.transport.Reader.run(Reader.java:50)
2018-04-11T12:03:18.123Z INFO n.s.s.t.TransportImpl [notifyDisconnect:182] [reader] - Disconnected - UNKNOWN
2018-04-11T12:03:18.127Z ERROR n.s.c.Promise [tryRetrieve:175] [main] - <<chan#6 / open>> woke to: net.schmizz.sshj.connection.ConnectionException: Connection reset
2018-04-11T12:03:18.130Z ERROR c.v.v.e.OutcomePrinter [afterInvocation:40] [main] - exception thrown
net.schmizz.sshj.connection.ConnectionException: Connection reset
at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:32)
at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:26)
at net.schmizz.concurrent.Promise.deliverError(Promise.java:96)
at net.schmizz.concurrent.Event.deliverError(Event.java:74)
at net.schmizz.concurrent.ErrorDeliveryUtil.alertEvents(ErrorDeliveryUtil.java:34)
at net.schmizz.sshj.connection.channel.AbstractChannel.notifyError(AbstractChannel.java:226)
at net.schmizz.sshj.connection.channel.direct.SessionChannel.notifyError(SessionChannel.java:224)
at net.schmizz.sshj.common.ErrorNotifiable$Util.alertAll(ErrorNotifiable.java:35)
at net.schmizz.sshj.connection.ConnectionImpl.notifyError(ConnectionImpl.java:258)
at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:597)
at net.schmizz.sshj.transport.Reader.run(Reader.java:68)
Caused by: net.schmizz.sshj.common.SSHException: Connection reset
at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:36)
at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:29)
at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:591)
... 1 common frames omitted
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at net.schmizz.sshj.transport.Reader.run(Reader.java:50)
2018-04-11T12:03:18.131Z INFO c.v.v.e.OutcomePrinter [afterInvocation:47] [main] - OUTCOME:FAIL
问题:
SSH 连接经常断开并重新连接,但是当我通过此 SSH 连接执行命令时,如果发生断开连接,它永远不会重新连接,而是 net.schmizz.sshj.connection.ConnectionException:抛出连接重置异常。
我的查询:
如何解决 Java 代码中的 ssh 断开连接问题,尤其是在通过 SSH 连接执行命令时?
谢谢。
最佳答案
来自javadoc:SocketException:抛出该异常表示创建或访问 Socket 时出错。
所以基本上,只要不是你的系统导致的,你就没有办法阻止这种情况。连接丢失。通常此错误是因为服务器出于某种原因断开了您的客户端连接。
您可以做的是,如果抛出错误,您只需让客户端重新连接即可。或者,如果这是用户操作的客户端,您可以监视并行线程中的连接,并在用户知道连接丢失之前使客户端重新连接。
关于java - SSH 命令执行失败并出现异常 - "net.schmizz.sshj.connection.ConnectionException: Connection reset Exception is thrown",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796804/
我在 Spring Boot 中使用 OpenFeign 客户端而不使用 Ribbon 或 Eureka。我创建了一个自定义错误解码器,它按预期处理响应错误,但连接拒绝错误似乎绕过了我的自定义解码器。
我有以下代码: private Job[] synchro(URI u) { try{ Client client = new Client(new Cont
我正在尝试在 xampp 的本地机器上运行 laravel shop 菜单项目。但是当我尝试运行它时,它会显示以下错误。请帮我解决这个问题。我还附上了一个屏幕截图以便更清楚地说明。 提前致谢: 错误:
我正在尝试使用 java mail api 并在我的 servlet 中使用以下代码来发送邮件。我找不到解决错误的方法。 protected void doGet(HttpServletRequest
我有在多个队列工作人员上运行的作业,其中包含一些使用 Guzzle 的 HTTP 请求。但是,此作业中的 try-catch block 似乎无法接收 GuzzleHttp\Exception\Req
我正在尝试使用Cloudera的CDH 4.7使用Apache Solr在Hadoop中的Clouera上建立数据索引 $ java -Durl=http://localhost:8983/solr/
我在 RestTemplate 中有以下错误处理: try { restTemplate.postForObject(..); } catch (ResourceAccessException
在下面的测试中,我尝试模拟超时,然后发送正常请求。但是,我得到了 Spray.can.Http$ConnectionException: Premature connection close (服务器
我正在调用 AdaptivePaymentService.PaymentDetails() 来获取付款的详细信息,它会抛出一个指示 404 的 ConnectionException。为了调试这个问题
我刚刚安装了“eve demo”,但无法开始工作。 错误是: eve.io.base.ConnectionException: Error initializing the driver. Make
我正在尝试使用 MongoDB's PHP driver 的 $or 运算符进行查询,但我收到以下错误: Fatal error: Uncaught MongoDB\Driver\Exception\
我在 AWS 账户 A 上的 VPC 中有一个 AWS lambda 函数,它与包含 DAX 集群的 AWS 账户 B 上的 VPC 有对等连接。尝试从我的 lambda 连接到 DAX 集群时出现以
我有 3 个 cassandra 节点(db-stats-01、db-stats-02、db-stats-03),根据 nodetool status,它们都正常运行。 客户端本质上是这样做的: Bu
当通过 SSH 连接执行命令时,命令执行通常会失败并出现异常 - “net.schmizz.sshj.connection.ConnectionException:抛出连接重置异常”。 问题描述: 我
当我尝试在我的 mule 应用程序中使用 Twitter 连接器时出现以下错误。 我的依赖项(和我的耳朵)中已经有了 mule-core。实际上,我的依赖项看起来还不错..
我在使用 PayPal REST Api 时遇到问题,有时它工作正常! (在沙盒上它 100% 有效)但是在连接到实时 PayPal 系统时在实时系统上。我有时会收到以下错误。 PayPal.Conn
我正在尝试学习使用 JMeter 进行负载测试(非常新)。使用 JMeter 网站上的构建 Web 测试计划教程和另一个 youtube 教程,我创建了一个 HTTP GET 请求以访问 www.go
我是一名优秀的程序员,十分优秀!