Я пытаюсь подключиться к серверу postgresql с Java через туннель SSH.У меня нет доступа администратора к серверу postgresql, поэтому я не могу изменить любой параметр.
Вот мой код:
public SSHConnection() {
JSch jsch = new JSch();
//First ssh connection to the first domain (SERVER1_DOMAIN)
serverSession = jsch.getSession(USERNAME, SERVER1_DOMAIN, 22);
serverSession.setPassword(PASSWORD);
localUserInfo lui=new localUserInfo();
serverSession.setUserInfo(lui);
serverSession.setConfig(STRICT_HOST_KEY_CHECKING, NO);
System.out.println("Establishing Connection with "+SERVER1_DOMAIN);
//Port forwarding to the second domain (SERVER2_DOMAIN)
serverSession.setPortForwardingL(2233, SERVER2_DOMAIN, 22);
serverSession.connect();
System.out.println("Connection established with "+SERVER1_DOMAIN);
serverSession.openChannel("direct-tcpip");
//Creating second ssh session
dbstudSession = jsch.getSession(USERNAME, "localhost", 2233);
dbstudSession.setPassword(PASSWORD);
dbstudSession.setUserInfo(lui);
dbstudSession.setConfig("StrictHostKeyChecking", "no");
dbstudSession.connect(); // now we're connected to the secondary system
//Creating port forwarding from my system (6786) to postgresql port of SERVER2_DOMAIN over the ssh connection created above
dbstudSession.setPortForwardingL(6786,"localhost",5432);
System.out.println("Connection established with "+SERVER2_DOMAIN);
Class.forName("org.postgresql.Driver");
Connection connection = null;
//Trying to connect to the psql database
connection = DriverManager.getConnection("jdbc:postgresql://localhost:6786/databasename",USERNAME,PASSWORD);
connection.close();
}
Когда я его запускаю, он правильно создает два соединения ssh, но я получаю эту ошибку от postgre:
FATAL: нет записи pg_hba.conf для хоста ":: 1", пользователь "taschinfed", база данных "taschinfed", отключение SSL на org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication (ConnectionFactoryImpl.java:473) в org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl (ConnectionFactoryImpl.java:205) в org.postgres0) в org.postgresql.jdbc.PgConnection. (PgConnection.java:195) в org.postgresql.Driver.makeConnection (Driver.java:452) в org.postgresql.Driver.connect (Driver.java:254) в Java.sql.DriverManager.getConnection (DriverManager.java:664) в java.sql.DriverManager.getConnection (DriverManager.java:247) в SSHConnection.connect (SSHConnection.java:65) в SSHConnection. (SSHConnec.tion.java:54) at Main.main (Main.java:10)
Я не знаю, что делать
Редактировать: я могу легко получить доступ к базе данных через WindowsPower Shell, создавая ssh-соединение с первым доменом и другое ssh-соединение из первого домена со вторым доменом, используя затем команду psql .Это означает, что с ssh-соединениями нет проблем, и на самом деле я могу получить доступ к серверу из своего java-кода, но я не понимаю, что означает это сообщение об ошибке.