我在网页中嵌入了一个 JSCH SSH Java 小程序,需要知道是否可以运行脚本(任何语言,如 PHP)来自动登录和运行命令。我听说过 expect4j 和 java 机器人,但看不到任何实现它的方法。请记住,我对 Java 不是很好,所以我对它一无所知。任何帮助表示赞赏。
1 回答
JSch是一个 SSH 客户端库,它本身只允许以编程方式连接到另一台服务器。图书馆的用户必须围绕它建立用户交互。
网站上提供的JCTerm小程序还包含一个 Java GUI 形式的终端仿真器。如果您只想自动执行某些命令(并可能在网页中显示其输出),您可以在服务器端执行所有操作,并且不需要带有终端模拟器的小程序。(不过,您需要在服务器端使用一些 PHP-Java 桥接器,或者需要一些具有 Servlet 或类似功能的启用 Java 的网络服务器。)
(如果 Web 服务器与服务器是同一台机器,您将在其上运行命令,您甚至不需要 SSH 连接,但可以直接执行这些东西。)
如果服务器不能做任何事情(即“静态服务器”),小程序就是要走的路,是的。您可以修改 JCTerm 或从头开始创建一个新的小程序(使用 JCTerm 的连接代码作为如何连接到服务器的示例)。
如果您不必担心 LAN 中的任何恶意用户(即在 Web 服务器和用户之间,SSH 服务器无关紧要),您可以将密码(或者最好是用于公钥身份验证的私钥)嵌入到小程序的jar文件,并将其传递给库进行连接。(您还应该包括服务器的公钥以便于检查。)
将命令提供给 a ChannelExec
(而不是 a ChannelShell
),这使得提供输入(如果需要)和捕获输出变得更加容易。在文本区域中管道输出,或者简单地使用绿色/红色标签来说明命令是否成功执行。
(我可能会在接下来的几天里看看这个并尝试去做。不过没有保证。)