2011-01-13 3 views
1

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

alt text

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

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

Я не так хорошо знаком с ходом и с java вообще.

ответ

3
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

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

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

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

+0

'или найти способ автоматически нажмите«Да», когда этот вопрос всплывает (это может быть достигнуто с инструментариев, как AutoIt 3 с очень коротким скриптом) .' Это часть меня интересует, Я прочитал все остальное в вашем посте, поэтому я прошу ответа. Я не знаю, как это сделать. – London

+0

Используя программное обеспечение, подобное «Autoit 3», вы можете автоматизировать задачи Windows, такие как запуск или закрытие приложений, нажатие кнопок, перемещение мышь и так далее. Он запрограммирован с использованием очень простого языка сценариев, который можно схватить за 10 минут. Проверьте это на http://www.autoitscript.com/autoit3/index.shtml. – 0xCAFEBABE