【问题标题】:passing a password to a shell script over JSCh通过 JSCh 将密码传递给 shell 脚本
【发布时间】:2012-09-23 01:13:10
【问题描述】:

我想登录到远程机器并执行一个 shell 脚本。该脚本将在运行时提示输入用户 ID 和密码。

JSch可以做到吗?

【问题讨论】:

  • 您在远程计算机上有什么权限?您是否以 root 身份登录?我们可以假设远程计算机在 linux 中吗?
  • 如果你试图在删除 Linux 上执行“sudo su”命令,那么你会遇到 JSch 的问题。另见stackoverflow.com/questions/8441637/…
  • 为了更好地理解:如果您在计算机上连接,是否要运行额外的 shell 脚本来提示您输入登录数据和密码?
  • 我使用 ssh 连接到远程机器并执行一个交互式脚本,脚本询问用户名和密码。

标签: java ssh jsch


【解决方案1】:

这里需要考虑多点:

  • 要连接到服务器,您将使用 JSch 会话,然后使用 exec 通道(即 ChannelExec),将脚本名称作为命令。

    李>
  • 然后脚本会尝试读取密码。您必须在通道的输出流上传递它,该输出流连接到脚本的输入流。

  • 脚本可能会尝试不从标准输入读取,而是从终端读取。如果是这样,您需要启用“伪终端”,使用方法setPty(true),甚至可能使用其他方法设置终端类型。当然,这也取决于支持它的 SSH 服务器,但如果您可以使用其他 SSH 程序来执行此操作,它应该可以工作。

【讨论】:

  • 嗨,您能分享一个获取密码作为输入的示例吗?
猜你喜欢
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2015-12-20
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多