JSch múltiplos túneis / jumphosts

Não tenho certeza se isso é causado pelo uso de uma chave privada em vez de senha para o encaminhamento de porta, mas eis o que estou tentando fazer

Preciso encaminhar a porta local 3308 até o meu banco de dados SQL em 3306.

Eu posso executar coisas assim juntas no terminal no meu local

ssh -L 3308:loacalhost:3307 username@jumpbox "ssh -L 3307:mysqlDB:3306 username@server"

Ou execute a primeira parte no meu local e, em seguida, a segunda parte no jumpbox. Ambos funcionam bem e posso me conectar ao meu host local: 3308.

O problema surge quando começo a usar o JSch. Aqui está o meu código

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

A primeira conexão foi concluída, mas a segunda expiro

Exception no encadeamento "main" com.jcraft.jsch.JSchException: java.net.ConnectException: a operação atingiu o tempo limite (a conexão expirou)

Estou fazendo algo errado aqui com JSch ou encaminhamento de porta?

questionAnswers(1)

yourAnswerToTheQuestion