Я не уверен, если это вызвано использованием закрытого ключа вместо пароля для переадресации портов, но вот что я пытаюсь сделать
Мне нужно перенаправить локальный порт 3308 полностью в мою базу данных SQL на 3306.
Я могу запускать подобные вещи все вместе в терминале на моем локальном
ssh -L 3308:localhost:3307 username@jumpbox "ssh -L 3307:mysqlDB:3306 username@server"
Или запустите первую часть в моем локальном, а затем вторую часть в поле Jumpbox.Оба отлично работают, и я могу подключиться к своему локальному: 3308.
Проблема возникает, когда я начинаю использовать JSch.Вот мой код
JSch jsch = new JSch();
jsch.addIdentity("~/.ssh/id_rsa");
Session session = jsch.getSession("username", "jumpbox");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
int assinged_port = session.setPortForwardingL(3308, "localhost", 3307);
Session mysqlSession = jsch.getSession("username", "server", assinged_port);
mysqlSession.setConfig("StrictHostKeyChecking", "no");
mysqlSession.connect(); // Connection timed out here
mysqlSession.setPortForwardingL(3307, "mysqlDB", 3306);
Первое соединение установлено, но второе истекло.
Исключение в потоке "main" com.jcraft.jsch.JSchException: java.net.ConnectException: Тайм-аут операции (Тайм-аут соединения)
Я что-то не так делаю с JSch или переадресацией порта?