0

I am trying to use JsCH for connecting to a remote server and then manipulate PostgreSQL.

Everything going fine if I use PUTTY and also with JSCH.

My only problem is the JsCH only accepts username and password from the Eclipse console even if I set these properties.

 public void connect() {

    // 
    int assigned_port;   
    final int local_port=5432;

    // Remote host and port
    final int remote_port=5432;
    final String remote_host="myserver011";

    try {
        JSch jsch = new JSch(); 

        // Create SSH session.  Port 22 is your SSH port which
        // is open in your firewall setup.
        Session session = jsch.getSession("companyusername", remote_host, 22);

        session.setPassword("password");

        // Additional SSH options.  See your ssh_config manual for
        // more options.  Set options according to your requirements.
        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        config.put("Compression", "yes");
        config.put("ConnectionAttempts","2");

        session.setConfig(config);

        // Connect
        session.connect();            

        // Create the tunnel through port forwarding.  
        // This is basically instructing jsch session to send 
        // data received from local_port in the local machine to 
        // remote_port of the remote_host
        // assigned_port is the port assigned by jsch for use,
        // it may not always be the same as
        // local_port.

        assigned_port = session.setPortForwardingL(local_port, 
                remote_host, remote_port);
        System.out.println("SSH Connection succes!");


    } catch (JSchException e) {  
        e.printStackTrace();
        LOGGER.log(Level.SEVERE, e.getMessage()); return;
    }

    if (assigned_port == 0) {
        LOGGER.log(Level.SEVERE, "Port forwarding failed !"); 
        return;
    }

}

But the console still needs the username and password.

Kerberos username [myusername]: companyusername  <---- here I set again the username
Kerberos password for companyusername : password <---- and the password
SSH Connection succes!
Opened database successfully

And then everything works. But I don't want to set these again, and I cant find anywhere the source of this "bug"?! I don't know, maybe it's a server config parameter to force the user to manually give the input?

Any advice or hint would be great.

Null
  • 1,950
  • 9
  • 30
  • 33
  • Do you really want/need to use GSSAPI/Kerberos authentication? Or do you want to use plain username/password authentication? Would the authentication work if you just skip those two prompts (press Enter twice)? – Martin Prikryl May 19 '15 at 05:33
  • lol, yes! It works if i simply hit twice enter. So my only question is can I skip these enters somehow? – Csanád Farjas May 19 '15 at 06:12

1 Answers1

0
    //this works pretty well for me.

    Session session;
    ssh = new JSch();
            session = ssh.getSession(username,hostname,port);
            session.setConfig(config);
            session.setPassword(password);
            session.setConfig("StrictHostKeyChecking","no");
            session.connect();