Kuba K
Kuba K

Reputation: 33

SSH shell Exception

I have a problem. I created a simple program, to conect to my raspberry by ssh and i have got exception:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/input/NullInputStream at Main.main(Main.java:6) Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.input.NullInputStream at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more`

Code:

import com.jcabi.ssh.SSH;
import com.jcabi.ssh.Shell;

class Main{
    public static void main(String[] args) throws Exception{
        String hello = new Shell.Plain(
                new SSH(
                        "192.168.1.19", 22,
                        "pi", "raspberry"
                )
        ).exec("echo 'Hello, world!'");
    }
}

Upvotes: 1

Views: 314

Answers (1)

Drahoš Maďar
Drahoš Maďar

Reputation: 567

You seem to be sending user name and user password as parameter, but based on documentation this lib expects RSA key.

Use SSHByPassword

http://ssh.jcabi.com/apidocs-1.5/com/jcabi/ssh/SSHByPassword.html

like this:

private String address;
private int port;
private String user;
private String password;

/**
 * @param address - server IP
 * @param port - SSH port
 * @param user - login user
 * @param password - user password
 */

public SSHcommunicator(String address, int port, String user, String password) {
    this.address = address;
    this.port = port;
    this.user = user;
    this.password = password;
}

public String sayHello() throws IOException {

    Shell shell = new SSHByPassword(address, port, user, password);
    return new Shell.Plain(shell).exec("echo 'Hello, world!'");
}

Upvotes: 0

Related Questions