мне нужно запустить некоторые coommands с удаленного компьютера, используя соединение SSH, но проблема заключается в следующем:выполнять удаленные команды корыта туннель SSH и Java
Клиентский компьютер (Запуск Win) подключен к сети, в которой Я вижу удаленный сервер (второй компьютер (nix), в той же сети), я могу делать с ним ssh-подключения, однако на компьютере, который содержит файлы (Running unix), нет в этой сети, я могу только подключиться к этому через динамический туннель ssh открывается во втором компьютере, где я обычно использую Putty для настройки этого соединения, тогда у меня есть доступ к удаленным файлам.
Этот рисунок представляет собой архитектуру, (брандмауэр подобен Seconda машине)
мне нужно, чтобы сделать эту работу автоматически, так что я сделал некоторые испытания с Java и библиотеки JSch, здесь некоторый код:
/* Direccion y puerto del host local */
String host = "localhost";
int lport = 5040;
/* Direccion y puerto del host remoto*/
String rhost = "localhost";
int rport = 80;
/* Usuario y password para conectarse al servidor ssh*/
String user = "test";
String pwd = "test";
try{
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword("test");
Properties config = new Properties();
config.put("StrictHostKeyChecking","no");
session.setConfig(config);
session.connect();
int assinged_port=session.setPortForwardingL(lport, rhost, rport);
System.out.println("localhost:"+assinged_port+" -> "+rhost+":"+rport);
я получил связь, однако, когда я запускаю команду Усина объекта сессии ответа будет из второй машины не из третьей машины, как я ожидал, я хотел бы знать, если есть anot ее библиотека, которая помогает сделать эту работу, или я использую неправильный JSch.
Не могли бы вы дать мне примеры ?, Я достигаю успешной связи – fers
, но я не могу выполнить команду на сервере ресурсов – fers
Пример в вики для меня работал, когда я писал (несколько месяцев назад), но из Конечно, вам нужна учетная запись с правами выполнения на целевом сервере. –