使用 JAVA API 在远程服务器上执行 shell 脚本

dav*_*419 2 java api ssh shell

我正在尝试使用 JAVA API 在远程服务器上运行 shell 脚本。远程服务器有身份验证,所以我必须传递我的用户名和密码才能登录。我无权在这些机器(源或目标)上安装 'sshpass' ,以防您要提供该解决方案。

做这个的最好方式是什么?

Kev*_*inO 5

JSch 是一个优秀的库,用于支持通过 ssh 的远程连接,包括远程命令(或 shell 脚本)的执行。

JSch 示例中有许多关于如何使用 JSch 的示例,但要特别注意Exec

在它的基础上,人们所做的是:

  1. 获取凭据
  2. 创建一个 Session
  3. 打开ChannelSession
  4. 根据需要处理流

在打字时,OP 还发布了一个附加问题和一个示例。http://www.codesandscripts.com/2014/10/java-program-to-execute-shell-scripts-on-remote-server.html 中的示例似乎也不错。

至于将脚本推送到服务器,首先使用scpor sftp(我们发现后者更可靠)将文件移动到远程机器,确保发送execof chmod u+x,然后调用脚本。