Я пытаюсь подключиться к удаленному DB Vertica, используя Java, и подключение к ней включает в себя туннель SSH с добавлением файла PEM в качестве открытого ключа. /> Java.sql.sqlnontransientConnectionException: [vertica] vjdbc не удалось подключиться к хосту 10.13.3.213 на порту 5433. Причина: не удалось установить соединение с первичным сервером или любым резервным адресом из -за ошибки сети < /p>
< /blockquote>
. Portforwarder.openconnection Метод: < /p>
int localBindingPort = PortForwarder.openConnection();
JDBCurl = String.format(JDBCClass + "%s:%s/%s", Host, localBindingPort, Schema);
return DriverManager.getConnection(JDBCurl,
username,password);
public class PortForwarder extends DBConfig {
static String portsString = Port + ":" + Host + ":" + SSHPort; // port:host:hostport
static Session session = null;
public static int openConnection() {
int assigned_port = -1;
JSch jsch = new JSch();
try {
int lport;
String rhost;
int rport;
String[] portParams;
portParams = portsString.split(":");
lport = Integer.parseInt(portParams[0]);
rhost = portParams[1];
rport = Integer.parseInt(portParams[2]);
jsch.addIdentity(pemFile);
session = jsch.getSession(SSHUsername, SSHHost, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
assigned_port = session.setPortForwardingL(lport, rhost, rport);
} catch (Exception e) {
System.err.println(e);
System.exit(1);
}
return assigned_port;
}
public static void closeConnection() {
if (session != null) {
session.disconnect();
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... automation