Java ssh:连接到远程,切换用户,跳转到下一个主机并执行命令

时间:2015-02-19 10:49:00

标签: java shell ssh jsch

我正在尝试做这些事情(使用JSch库)......

  1. 连接到远程主机(主机A)
  2. 切换到其他用户
  3. 连接到其他远程主机(主机B)
  4. 执行带有一些输出的命令集
  5. 我在第1步和第4步取得了成功:

        Channel channel = session.openChannel("exec");
        channel.setInputStream(null);
        ((ChannelExec) channel).setCommand("whoami");
        channel.connect();
    

    这给了我预期的输出。 但是,当我做这样的事情时,即添加数字2:

    ((ChannelExec) channel).setCommand("sudo su - user; whoami");
    

    用户未被更改。

    我尝试的另一种方法是打开" shell"通道,但它永远挂起,等待输入,我想。即使我找到了解决这个等待问题的方法," shell" channel不会是解决这个问题的首选方法,因为我需要一个格式良好的输出命令我运行 - " shell"通道输出看起来像一个真正的终端状态,包含所有空行,提示等等...

    任何帮助都将受到高度赞赏......

0 个答案:

没有答案