首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSch创建嵌入ssh连接,但ServerAliveInterval不工作。

JSch创建嵌入ssh连接,但ServerAliveInterval不工作。
EN

Stack Overflow用户
提问于 2017-11-05 15:14:52
回答 1查看 1.3K关注 0票数 0

我想使用JSch作为一个通用的shell交互工具,它非常有用。

我想要创建一个ssh,它是内部的JSch通道shell,shell的InputStream和OutStream是由我自己维护的。

问题是,当我将命令字符串ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=2 -o StrictHostKeyChecking=no -o ConnectTimeout=10 -T root@xxx.xxx.xxx.xxx -p 22发送到OutputStream,以设置ServerAliveInterval的“保持活动”,但它不能在all.the上工作时,当关闭network.This时间超过配置ServerAliveInterval=5 ServerAliveCountMax=2时,新的通道将保持1分钟。

JSch是否支持内部ssh连接设置以处理“保持活动”检查,如ServerAliveInterval

更新

描述这个问题的一些步骤:

  1. 创建shell通道使用JSch登录host1
  2. 通过发送一个命令ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=2 root@xxx.xxx.xxx.xxx -p 22 (字节流),使用通道跳转到ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=2 root@xxx.xxx.xxx.xxx -p 22。新的ssh是配置与ServerAliveInterval,以检查ssh网络状态的host2

JSch可以识别host1断开,如果我使用Session.setServerAliveInterval方法并使用Session.isConnected进行测试。

问题是,如果只有host2网络被打破了平衡,那么就不能检查host2,我使用的是ServerAliveInterval配置,当跳转到host2时,.It会保持很长时间(在测试中超过1分钟),直到得到packet_write_wait: Connection to xxx.xxx.xxx.xxx port 22: Broken pipe为止。但我希望在设置ServerAliveInterval=5 ServerAliveCountMax=2时不到10秒就会收到一些错误消息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-05 17:12:59

外壳是JSCh的黑匣子。

JSch不知道你在那里做了什么。

如果您想模仿OpenSSH ServerAliveInterval指令所做的事情,请使用Session.setServerAliveInterval

另见JSch: How to keep the session alive and up

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47123132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档