无法从Servlet执行SSH

问题描述:

我正在构建一个使用SSH从其他远程服务器获取信息的Web服务(Sevlets)。 为了简单起见,我选择使用Apache commons exec库来执行ssh,而不是像JSch那样在Java中使用SSH客户端实现。 此实现在我的开发环境中正常工作,但是当我将其部署到远程Web服务器(带有OpenSSH客户端的Red Hat Server)时,它会失败并显示错误消息。无法从Servlet执行SSH

ssh_exchange_identification:连接被远程主机关闭

但是当我ssh到Web服务器并重新启动Apache Tomcat的后台程序,在我的servlet代码中的SSH工作,直到我与web终止我的SSH会话服务器,然后以上面的消息失败。 PS:我宁愿尽可能避免使用Java SSH客户端实现,因为我环境中的ssh设置不是直接的,它涉及到建立隧道。 这样的设置已经完成使用ssh配置文件,因此我想尽可能使用现有的设置。

请检查[Ganymed SSH库](http://www.ganymed.ethz.ch/ssh2/)是否会对您有所帮助。我已经在我的一个项目中使用过它,并发现它很容易并且很有帮助。

+0

@Idris如果我无法解决此问题,我将使用Java SSH客户机实现。 –