【发布时间】:2014-01-30 15:42:05
【问题描述】:
我正在构建一个 Web 服务 (Sevlets),它使用 SSH 从其他远程服务器获取信息。 为了简单起见,我选择使用 Apache commons exec 库来执行 ssh,而不是使用 Java 中的 SSH 客户端实现,如 JSch。 此实现在我的开发环境中运行良好,但是当我将其部署到远程 Web 服务器(带有 OpenSSH 客户端的 Red Hat 服务器)时,它会失败并显示错误消息。
ssh_exchange_identification:连接被远程主机关闭
但是,当我通过 ssh 连接到 Web 服务器并重新启动 Apache Tomcat 守护程序时,我的 servlet 代码中的 SSH 会一直工作,直到我终止与 Web 服务器的 SSH 会话,然后失败并显示上述消息。
PS:我宁愿尽可能避免使用 Java SSH 客户端实现,因为在我的环境中设置 ssh 并不简单,它涉及设置隧道。 此类设置已使用 ssh 配置文件完成,因此我希望尽可能使用现有设置。
【问题讨论】:
标签: java servlets ssh apache-commons openssh