我已在网页中嵌入了 JSCH SSH Java 小程序,并且需要知道是否可以运行脚本(任何语言(如 PHP))来自动登录和运行命令。我听说过expect4j和java机器人,但看不到任何实现它的方法。请记住,我不太擅长 Java,所以我并不了解它的一切。如有任何帮助,我们将不胜感激。
最佳答案
JSch是一个 SSH 客户端库,其本身仅允许以编程方式引导与另一台服务器的连接。用户交互必须由图书馆的用户围绕它构建。
JCTerm网站上提供的小程序还包含 Java GUI 形式的终端仿真器。如果您只想自动执行某些命令(并且可能在网页中显示其输出),您可以在服务器端执行所有操作,并且不需要带有终端模拟器的小程序。 (不过,您可能需要服务器端的 PHP-Java 桥接器,或者带有 Servlet 或类似功能的支持 Java 的 Web 服务器。)
(如果 Web 服务器与您将运行命令的服务器是同一台计算机,您甚至不需要 SSH 连接,但可以直接执行这些内容。)
如果服务器不能做任何事情(即“静态服务器”),那么小程序就是可行的方法,是的。您可以修改 JCTerm 或从头开始创建一个新的小程序(使用 JCTerm 的连接代码作为如何连接到服务器的示例)。
如果您不必担心 LAN 中的任何恶意用户(即 Web 服务器和用户之间,SSH 服务器并不重要),您可以嵌入密码(或者最好是用于公钥身份验证的私钥) ) 到小程序的 jar 文件中,并将其传递给库进行连接。 (您还应该包含服务器的公钥以便于检查。)
向 ChannelExec
(而不是 ChannelShell
)提供命令,这样可以更轻松地提供输入(如果需要)并捕获输出。将输出通过管道传输到文本区域,或者简单地使用绿色/红色标签来说明命令是否成功执行。
(我可能会在接下来的几天里看看这个并尝试这样做。不过,没有 promise 。)
关于java - JSCH Java 小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322488/