Источник: http://www.cleondris.ch/en/opensource-ssh2.php
Образец:
Ganymed SSH-2 для Java — это библиотека, реализующая протокол SSH-2 на чистой Java (протестировано на J2SE 1.4.2 и 5.0). Он позволяет подключаться к SSH-серверам из программ Java. Он поддерживает сеансы SSH (удаленное выполнение команд и доступ к оболочке), переадресацию локальных и удаленных портов, пересылку локального потока, пересылку X11, SCP и SFTP. Нет никакой зависимости от какого-либо поставщика JCE, поскольку включены все функции шифрования.
Источник:
复制代码代码如下:
@Тест
общественный недействительный testSsh () {
Строка имя хоста = "192.168.0.1";
Строка имя пользователя = «корень»;
Строка пароля = «пароль»;
пытаться {
/* Создаём экземпляр соединения */
Соединение conn = новое соединение (имя хоста);
/* Теперь подключаемся */
конн.подключиться();
System.out.println("подключиться ок");
/*
* Аутентификация. Если вы получаете исключение IOException, говорящее что-то вроде
* «Пароль метода аутентификации не поддерживается сервером на данном этапе».
* тогда, пожалуйста, проверьте FAQ.
*/
логическое значение isAuthenticated = conn.authenticateWithPassword(имя пользователя,пароль);
если (isAuthenticated == false)
throw new IOException("Аутентификация не удалась.");
System.out.println("Аутентификация прошла успешно");
/* Создаем сеанс */
Сеансовый сеанс = conn.openSession();
sess.execCommand("uname -a");
System.out.println("Вот некоторая информация об удаленном хосте:");
/*
* Этот базовый пример не обрабатывает stderr, что иногда
* опасно (пожалуйста, прочитайте FAQ).
*/
InputStream stdout = новый StreamGobbler(sess.getStdout());
BufferedReader br = новый BufferedReader (новый InputStreamReader (stdout));
в то время как (истина) {
Строковая строка = br.readLine();
если (строка == ноль)
перерыв;
System.out.println(строка);
}
/* Показать статус выхода, если он доступен (в противном случае «ноль») */
System.out.println("ExitCode: " + sess.getExitStatus());
/* Закрываем этот сеанс */
сесс.закрыть();
/* Закрываем соединение */
конн.закрыть();
} catch (IOException e) {
e.printStackTrace(System.err);
Система.выход(2);
}
}
运行结果:
复制代码代码如下:
подключитесь ок
Аутентификация ок
Вот некоторая информация об удаленном хосте:
Linux localhost.localdomain 2.6.22 #1 SMP Ср, 13 августа 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
Код выхода: 0