JSch" exec"频道无法使用" echo'某些内容' >文件名"

时间:2017-12-21 08:40:35

标签: java jsch

我使用JCraft库编写了一个代码,使用exec频道连接到远程,并在远程创建一个文件。该文件的内容就是我echo,然后使用> filename.ini将文件放入文件中。
echo工作正常,但> filename.ini未在远程创建任何文件 我该如何解决这个问题? 这是代码:

Session session=jsch.getSession(user,host, 22);
        session.setPassword(pswd);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setConfig("PreferredAuthentications","publickey,keyboard-interactive,password");
        session.connect();
        System.out.println("Connected");


        Channel channel=session.openChannel("exec");
        channel.setInputStream(null);
        String command = "echo '\"Hi\"|\"Hello\"' | sed -e 's/|/\\n/g' > /home/myuser/tmp.ini; cat /home/myuser/tmp.ini";
        ((ChannelExec) channel).setCommand("sudo -iu myuser -p '' " + command);
        InputStream in = channel.getInputStream();
        OutputStream out = channel.getOutputStream();
        ((ChannelExec) channel).setPty(true);
        ((ChannelExec) channel).setErrStream(System.err);
        channel.connect(); 

我错过了什么吗?

1 个答案:

答案 0 :(得分:-1)

根据第一条评论的用户的建议,我做了一个chmod 777并且正在进行中 这是一个许可问题。