Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSCHJava_Java_Ssh_Jsch - Fatal编程技术网

使用JSCHJava

使用JSCHJava,java,ssh,jsch,Java,Ssh,Jsch,我正在尝试使用JsCH连接到远程服务器,然后操作PostgreSQL 如果我使用油灰和JSCH,一切都会很好 我唯一的问题是JsCH只接受来自Eclipse控制台的用户名和密码,即使我设置了这些属性 public void connect() { // int assigned_port; final int local_port=5432; // Remote host and port final int remote_port=5432

我正在尝试使用JsCH连接到远程服务器,然后操作PostgreSQL

如果我使用油灰和JSCH,一切都会很好

我唯一的问题是JsCH只接受来自Eclipse控制台的用户名和密码,即使我设置了这些属性

 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;
    }

}
但是控制台仍然需要用户名和密码


Kerberos用户名[myusername]:companyusername您真的想/需要使用GSSAPI/Kerberos身份验证吗?还是要使用普通用户名/密码身份验证?如果您跳过这两个提示(按Enter键两次),身份验证会起作用吗?哈哈,是的!如果我只需按两次回车键,它就会起作用。所以我唯一的问题是我能跳过这些输入吗?实际上我的代码和你在这里写的一样,只是一些行顺序的差异。
Kerberos username [myusername]: companyusername  <---- here I set again the username
Kerberos password for companyusername : password <---- and the password
SSH Connection succes!
Opened database successfully
    //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();