使用JSCHJava
我正在尝试使用JsCH连接到远程服务器,然后操作PostgreSQL 如果我使用油灰和JSCH,一切都会很好 我唯一的问题是JsCH只接受来自Eclipse控制台的用户名和密码,即使我设置了这些属性使用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
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();