¿Cómo puedo configurar un cliente de sftp de Apache-Mina para usar un proxy?
Quiero usar Apache MINA como un cliente sftp
dentro de una aplicación Java. Esta aplicación hará una conexión de salida a través de un proxy HTTPS a un servidor remoto. Necesitaré establecer los detalles de autenticación para la conexión al proxy en algún lugar.
Quiero obtener una instancia de org.apache.sshd.sftp.client.SftpClient
que se ejecute sobre una conexión ssh
a través del proxy.
Tengo estas importaciones:
import org.apache.sshd.client.SshClient;
import org.apache.sshd.client.session.ClientProxyConnector;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.sftp.client.SftpClient;
import org.apache.sshd.sftp.client.SftpClientFactory;
Y este es el código que he escrito hasta ahora:
// proxy
ClientProxyConnector proxy = ????;
// ssh
SshClient sshClient = SshClient.setUpDefaultClient();
sshClient.setClientProxyConnector( proxy );
sshClient.start();
ClientSession sshSession = sshClient.connect( "ejemplo.org" ).getSession();
// sftp
SftpClientFactory factory = SftpClientFactory.instance();
SftpClient client = factory.createSftpClient(sshSession);
Preguntas:
- ¿Necesito una instancia de
ClientProxyConnector
para hacer lo que estoy intentando hacer? - ¿Cómo puedo obtener una instancia de
ClientProxyConnector
y configurarla con los detalles de autenticación del proxy?
davy.ai
Según el escenario dado, dado que la aplicación Java necesita hacer una conexión saliente a través de un proxy HTTPS a un servidor remoto, necesitará una instancia de
ClientProxyConnector
para lograr esto.Para obtener una instancia de
ClientProxyConnector
y configurarla con los detalles de autenticación de proxy, puede hacer lo siguiente:Aquí,
SshClient.setUpDefaultClientProxyConnector()
creará una instancia predeterminada deClientProxyConnector
, que luego puede configurar con los detalles del proxy. Puede utilizarproxy.setProxy()
para establecer los detalles del proxy y luegoproxy.setUsername()
yproxy.setPassword()
para establecer los detalles de autenticación para el proxy.Una vez que haya obtenido el
ClientProxyConnector
, puede configurarlo en la instanciaSshClient
como sigue:Esto asegurará que
SshClient
utilice elClientProxyConnector
especificado para establecer la conexión SSH, que a su vez será utilizado porSftpClient
para establecer la conexión SFTP sobre SSH a través del proxy.