Использование Apache SSHD, предоставляется доступный полупродукт сервера SSHD. Это позволяет быстро разрабатывать CLI-приложения на основе SSH.
package org.dreamwork.sshd.example;
import org.dreamwork.config.IConfiguration;
import org.dreamwork.config.PropertyConfiguration;
import org.dreamwork.network.sshd.Sshd;
import java.util.Properties;
public class BasicSshdApplication {
public static void main (String[] args) throws Exception {
IConfiguration conf = new PropertyConfiguration (new Properties ());
Sshd sshd = new Sshd (conf);
sshd.init (null);
sshd.bind ();
}
}
Затем выполните команду:
ssh -p 50022 root@127.0.0.1
для входа в сервис. Пароль по умолчанию для пользователя root — 123456
. После входа вы можете использовать команду passwd для изменения пароля root.
Эти параметры можно настроить с помощью следующих ключей:
Все эти ключи могут быть переопределены с помощью системных свойств.
Dreamwork SSHD использует базу данных для хранения пользовательских данных и параметров конфигурации системы.
Org.dreamwork.network.sshd.Sshd использует метод init(IDatabase) для передачи объекта базы данных. Если этот метод вызывается с параметром null, то внутри создаётся файл базы данных sqlite3. Если вы хотите, чтобы sshd-сервер и ваше приложение использовали одну и ту же базу данных, то параметр метода init должен быть непустым объектом базы данных.
Команды предоставляют человеко-машинный интерфейс для sshd-сервера через регистрацию реализаций класса org.dreamwork.telnet.command.Command на org.dreamwork.network.sshd.Sshd.
В базовой реализации sshd-server включает набор команд, которые можно просмотреть после входа в систему с помощью команды help:
console> h
clear clear the screen and home cursor
echo shows something
env show environment
exit alias for command 'quit'
help h show this help list
history show history
passwd change current or spec user's password
quit q exit
set setting console env
shutdown shutdown the sshd server
unset unset a console env
user user management
Пользовательские команды расширяются путём расширения абстрактного класса org.dreamwork.telnet.command.Command.
Мы реализуем простую команду datetime для отображения текущего времени:
package org.dreamwork.sshd.example;
import org.dreamwork.telnet.Console;
import org.dreamwork.telnet.command.Command;
import java.io.IOException;
import java.text.SimpleDateFormat;
public class DateTimeCommand extends Command {
private SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
public DateTimeCommand () {
super ("datetime", null, "show current date time");
}
/**
* Выполнение команды
*
* @param console текущая консоль
* @throws IOException io exception
*/
@Override
public void perform (Console console) throws IOException {
console.println (sdf.format (System.currentTimeMillis ()));
}
}
Теперь мы можем зарегистрировать эту команду в sshd-сервере:
public class BasicSshdApplication {
public static void main (String[] args) throws Exception {
IConfiguration conf = new PropertyConfiguration (new Properties ());
Sshd sshd = new Sshd (conf);
sshd.init (null);
// Регистрация DateTimeCommand
sshd.registerCommands (new DateTimeCommand ());
sshd.bind ();
}
} ```
q exit
set setting console env
shutdown shutdown the sshd server
unset unset a console env
user user management
Появилась ещё одна команда:
datetime show current date time
Выполнение команды:
console> datetime
2020-02-25 19:37:41
console>
sshd-server
и Command
Более продвинутое/глубокое содержание см. в разделе «[sshd-server 使用手册]».
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )