在SSH连接器中发送Enter键

时间:2014-08-28 08:21:52

标签: java ssh jsch ssh-keys connector

我正在尝试使用用Java编写的SSH连接器在Linux机器上运行一些命令。

我正在使用Jsch库通过SSH运行命令。

问题出在最后一点,即Red Hat Linux box: -

一旦我执行su - 命令 有一个小的perl程序开始: - 询问一些信息

类似的东西: -

SHELL# su -
Enter some info
Info
Are you ok to proceed (y/n) y
SHELL#

我成功地从代码中输入了信息部分。但在那之后

你可以继续(y / n)y

我的代码崩溃,看起来y命令没有正确使用。

我想知道我是否应该从代码中发送Y +“输入密钥”以使其正常工作。 我怎样才能做到这一点?

以下是代码的主要逻辑: -

import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;


Channel channel;
Session session;

                   JSch jsch = new JSch();
                   SSHUserInfo sshUserInfo = new SSHUserInfo();
        sshUserInfo.setTrust(true);
        sshUserInfo.setPassword(loginPassword);
        sshUserInfo.setName(loginUserName);
        session = jsch.getSession(loginUserName, host, port);
        session.setUserInfo(sshUserInfo);
        session.connect();


               channel = session.openChannel(SSH_TYPE_SHELL);

        InputStream in = channel.getInputStream();
        OutputStream out = channel.getOutputStream();
        channel.connect();

               InputStream in = channel.getInputStream();
        OutputStream out = channel.getOutputStream();
        channel.connect();


        out.write(("su -" + "\n").getBytes());
            out.write(("info" + "\n").getBytes());
        out.write(("y" + "\n").getBytes());

任何帮助表示感谢。

0 个答案:

没有答案