Я пытаюсь установить адрес, чтобы, когда я покидаю свой сервер для поиска файла, я не оставлял имя хоста сервера в качестве другого ip.Линукс сторона всех вещей настроена.Я могу запустить следующую команду ssh, и все работает как положено.
ssh -b 1.1.1.1 testuser@sshhost
Моя проблема в настоящее время я пытаюсь использовать JSch для просмотра файлов, но я не могу определить правильную настройку сеанса.Я использую открытые закрытые ключи, и они работают правильно.Ниже мой текущий процесс.
JSch jsch = new JSch();
Keypair keyPair = KeyPair.load(jsch, privateKey, publicKey);
boolean keyPairdecrpy = keyPair.decrypt(passphrase);
if(keyPairdecrpy)
{
jsch.addIdentity(privateKey, passphrase);
}
Session session = jsch.getSession("user", "sshhost", 22);
Properties config new Properties();
config.put("StrickHostKeyChecking:, "no");
config.put("PreferredAuthentications", "publickey");
session.setConfig(config);
session.connect(timeout);
Итак, вещи, которые я до сих пор пробовал.
Создание фабрики сокетов, устанавливающей адрес привязки и затем запускающей
InetSocketAddress addr = new InetSicketAddress("1.1.1.1", 0);
Socket socket = new Socket(sshhost, 22);
socket.bind(addr);
session.setSocketFactory((SocketFactory) socket);
Попытка использовать встроенную переадресацию портов с классом сеанса
session.setPortForwardingL(0, "1.1.1.1", 22);