Java SSH клиент - PullRequest
       2

Java SSH клиент

1 голос
/ 13 января 2011

Я пытаюсь создать веб-приложение, которое будет проверять состояние нескольких служб, статистику сервера и т. Д. Я обнаружил, что http://www.jcraft.com/jsch/ кажется довольно хорошей реализацией ssh ​​java. Но каждый раз, когда я вхожу на сервер, мне предлагается подтвердить отпечаток ключа RSA следующим образом:

alt text

Как я могу переопределить это, чтобы всегда подтверждать да без каких-либо подсказок? Я хочу удалить всю часть свинга, я хочу сделать это без какого-либо взаимодействия, как этот пример кода, который я взял из примеров, доступных на jscraft.com:

http://www.jcraft.com/jsch/examples/Exec.java

Я не очень знаком со свингом и вообще с Java.

Ответы [ 3 ]

3 голосов
/ 13 января 2011
   public class ManoUserInfo implements UserInfo {

String passwd;

public void setPassword(String pass) {
    passwd = pass;
}

@Override
public String getPassphrase() {
    return null;
}

public String getPassword() {
    return passwd;
}

public boolean promptPassword(String arg0) {
    return true;

}

public boolean promptPassphrase(String arg0) {
    return true;
}
//this method responsible for that message, so just make it return true
public boolean promptYesNo(String arg0) {
  //  Object[] options = {"yes", "no"};
  /*  int foo = JOptionPane.showOptionDialog(null,
            arg0,
            "Warning",
            JOptionPane.DEFAULT_OPTION,
            JOptionPane.WARNING_MESSAGE,
            null, options, options[0]);*/
    return true;
}

public void showMessage(String message) {
    JOptionPane.showMessageDialog(null, message);
}
1 голос
/ 13 января 2011

Вы должны понять, почему появляется это сообщение.

SSH - это безопасный сервис, означающий, что идентичность клиента и идентичность сервера гарантированы. Чтобы гарантировать, что вы действительно достигли сервера, к которому хотите подключиться (например, если вы подключаетесь к неправильному серверу без вашего ведома, Google «Отравление DNS-кэша»), клиент отображает полученное имя сервера и отпечаток пальца. Эти значения идентифицируют сервер. Предполагается, что вы посмотрите, действительно ли это отпечаток, сгенерированный на сервере, путем сравнения отпечатка пальца по защищенному каналу (например, по телефону с администратором сервера).

Сказав это, обычные клиенты SSH сохраняют ваше решение принять имя отпечатка пальца / имя сервера и больше не спрашивают. Кажется, что ваш клиент этого не делает. Таким образом, у вас есть возможность изменить исходный код (если он лицензирован под открытой лицензией) или найти способ автоматически нажимать «Да» всякий раз, когда возникает этот вопрос (это можно сделать с помощью наборов инструментов, таких как Autoit 3, с очень коротким сценарием). ).

0 голосов
/ 13 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...