Use JSch sudo example and Channel.setPty for running sudo command on remote host

Solution 1:

I have similar code in a project I am working on, and was getting the same error. I resolved this using the setPty(true) as you did.

I think you're getting this error because you don't close out the streams in your code. If you are using Java 1.7, you can use a resource block as follows:

try( InputStream in=channel.getInputStream() ) {
    try( OutputStream out = channel.getOutputStream() ) {
    ...
    }
}

or the try...finally block pattern from past versions.