Usando JSch a SFTP cuando uno también debe cambiar de usuario

Estoy usando JSch en un cliente Java para conectarme a un servidor remoto y obtener algunos archivos usando SFTP. El siguiente código me ha funcionado bien: -

JSch ssh = new JSch();
JSch.setConfig(FileTransferConstants.STRICT_HOST_KEY_CHECKING, FileTransferConstants.NO);
Session session = ssh.getSession(userName, host, port);
session.setPassword(password);
session.connect();
Channel channel = session.openChannel(FileTransferConstants.SFTP);
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.cd(remoteDirectoryPath);
sftp.lcd(localDirectoryPath);

sftp.get(remoteDirectoryPath + remoteFileName, remoteFileName);

El problema es que ahora ha habido un cambio en la política del sitio. Ya no se me permite iniciar sesión directamente como este usuario (nombre de usuario arriba). Primero debo iniciar sesión como mi usuario personal y luego ingresar al usuario que tiene acceso a los archivos que quiero SFTP.

No creo que de todos modos pueda refactorizar el código anterior para lograr esto y, por lo tanto, he comenzado a buscar usar un shell o un canal de ejecución. Hasta ahora he tenido poco éxito y parece que no puedo encontrar ningún ejemplo en la web, por lo que agradecería cualquier consejo o sugerencia en la dirección correcta. Muchas gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta