Я пытаюсь подключиться к серверу SSH Unix по нажатию кнопки (код, написанный в методе actionPerformed()). Я использую JSch для подключения к серверу SSH. Код написан в классе SwingWorker, так как это сетевая операция.
private void testConnectionButtonActionPerformed(java.awt.event.ActionEvent evt) {
SwingWorker<Boolean, Void> sw = new SwingWorker<Boolean, Void>(){
@Override
protected Boolean doInBackground() throws Exception {
JSch jsch = new JSch();
String host = "ServerHost";
String username = "username";
String password = "password";
Session session = jsch.getSession(username, host);
session.setPassword(password);
session.setTimeout(20000);
System.out.println("Connecting to server...");
session.connect();
return true;
}
@Override
public void done(){
try {
System.out.println(get().toString());
} catch (Exception ex) {
System.out.err(ex);
}
}
};
sw.execute();
}
Но после запуска с правильным хостом, именем пользователя и паролем я все время получаю следующую ошибку:
com.jcraft.jsch.JSchException: timeout: socket is not established
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at javax.swing.SwingWorker.get(SwingWorker.java:583)
Но всякий раз, когда я запускаю один и тот же код в отдельной программе, я имею в виду вместо этого писать метод actionPerformed(), если я пишу его в обычном методе и вызываю из метода main(). Это будет работать. когда я интегрирую тот же код с методом actionPerformed() Button Click, он выдаст мне вышеуказанное исключение.
Может ли кто-нибудь предложить, что я делаю неправильно здесь, или какие-либо изменения должны быть внесены в код.
Я попытался подключиться к SSH-серверу, используя реализацию «SSHJ», но получаю следующую ошибку:
java.net.SocketException: Connection reset
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at javax.swing.SwingWorker.get(SwingWorker.java:583)
Может ли кто-нибудь помочь мне - как двигаться дальше?
system.out.err
). - person Paŭlo Ebermann   schedule 25.07.2011JSch.setConfig("StrictHostKeyChecking", "no")
. Но это не ваша проблема, ваша программа даже не доходит до этого момента (отказано в соединении или не разрешено). Проверьте настройки брандмауэра. - person Paŭlo Ebermann   schedule 26.07.2011