Ниже приведен пример - классы Connection, Session и т. Д. Определены в импорте. В то время мы использовали trilead SSH, и я не думаю, что он доступен публично больше, но вы можете найти много других библиотек в Интернете, например, http://linuxmafia.com/ssh/java.html
Дело в том, что мы не имеем открыть серверный сервер, чтобы (1) установить сеанс SSH, (2) выполнить аутентификацию паролем, (3) запустить некоторую команду в оболочке входа пользователя и (4) захватить ее stdout. Я считаю, что большинство библиотек SSH предоставят вам эту функциональность. Надеюсь на эту помощь, - М.С.
public void runCommand (String uName, String pWord, String cmd) throws Exception {
Connection conn = new Connection ("localhost");
conn.connect();
boolean authenticated = conn.authenticateWithPassword (uName, pWord);
if (!authenticated)
throw new Exception ("Authentication failure");
Session sess = connection.openSession();
sess.execCommand (cmd);
BufferedReader br = new BufferedReader (new InputStreamReader (
new StreamGobbler (sess.getStdout())));
for (String s = br.readLine() ; s != null ; s = br.readLine()) {
// do stuff with s
}
br.close();
sess.close();
conn.close();
}
Я бы воспользовался гнездом после приема соединения на серверном сокете, который поймал бы запрос из bash, а затем вернет сокет, который будет использоваться для связи. Я в основном задаюсь вопросом, как и если вы можете запросить tcp-соединение из командной строки bash/windows cmd, и если да, то как это сделать. Спасибо Tho :) –