Skip to main content

Руководство пользователя

Удаленный доступ через SSH к командной строке роутера

Начиная с версии операционной системы KeeneticOS 2.12 был добавлен сервер SSH (Secure Shell — безопасная оболочка), с помощью которого можно безопасно удаленно подключаться к интерфейсу командной строки (CLI) интернет-центра по протоколу SSHv2.

Для работы сервера SSH нужно в интернет-центре предварительно установить компонент системы Сервер SSH. Сделать это можно на странице Общие настройки системы в разделе Обновления и компоненты, нажав на Изменить набор компонентов.

ssh-remote-access-01-en.png

После установки компонента сервер SSH будет включен автоматически. Доступ к нему разрешен в локальных интерфейсах с уровнем безопасности private. Информацию об уровнях доступа, которые определяют уровень безопасности (логику работы сетевого экрана), вы найдете в статье Настройка правил межсетевого экрана из командного интерфейса.

Чтобы разрешить доступ из внешних сетей, нужно серверу SSH установить публичный уровень безопасности, выполнив в интерфейсе командной строки интернет-центра команды:

(config)> ip ssh
Core::Configurator: Done.
(config-ssh)> security-level public
Ssh::Manager: Security level changed to public.

Чтобы избежать нежелательных попыток взлома со стороны ботов, случайных Black/Grey Hat хакеров, а также для случаев когда на стандартном порту уже работает SSH-сервер в OPKG-подсистеме, рекомендуется сменить стандартный порт сервера. Порт, на котором работает сервер, по умолчанию стандартный — с номером 22. Его можно поменять на один из неиспользуемых номеров (например, на 2022):

(config-ssh)> port 2022
Ssh::Manager: Port changed to 2022.

Теперь пользователи, имеющие право доступа к командной строке Keenetic, смогут обратиться из SSH-клиента на внешний IP-адрес интернет-центра по порту 2022 и получить доступ к его командной строке в безопасном подключении.

Для сохранения настройки нужно выполнить команду:

(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...
Подключение к серверу SSH

Для подключения к Keenetic по протоколу SSH можно воспользоваться любой терминальной программой с поддержкой данного типа подключений. Например, бесплатным клиентом PuTTY.

Скачайте, установите и запустите на компьютере терминальный клиент PuTTY. В поле Connection type (Тип соединения) укажите тип подключения SSH. Введите в поле Host Name or IP address (Имя хоста или IP-адрес) сетевое имя или IP-адрес устройства (локальный IP при подключении из домашней сети или публичный WAN IP при подключении из Интернета), а в поле Port (Порт) – номер порта, по которому будет осуществляться подключение (по умолчанию протокол SSH использует порт 22, в нашем примере используется порт 2022).

ssh-remote-access-02-en.png

После нажатия кнопки Open (Соединиться) появится запрос логина и пароля для авторизации на устройстве. Введите данные учетной записи администратора. После успешного ввода логина и пароля администратора появится приглашение командной строки роутера.

ssh-remote-access-03-en.png

Также легко установить SSH-подключение из дистрибутива ОС Linux. Например, для подключения клиента SSH, с именем пользователя admin, следует использовать команду:

[alexander@silverado ~]$ ssh admin@192.168.1.1 -p 2022
Warning: Permanently added '[192.168.1.1]:2022' (ECDSA) to the list of known hosts.
admin@192.168.1.1's password:
X11 forwarding request failed on channel 0
(config)>

Если ваши ключи скомпрометированы, сервер SSH может сгенерировать новые. Эта процедура происходит автоматически при установке компонента системы, но может также быть запущена по команде ip ssh keygen {keygen}, где вместо {keygen} следует указать нужный алгоритм — default например.

(config-ssh)> keygen default
Ssh::Manager: Key generation is in progress...
progress, name = SSH key generation: 0
....
progress, name = SSH key generation: 50
progress, name = SSH key generation: 100

Если вы сменили ключи на сервере, то на клиенте, который их запомнил автоматически, следует выполнить очистку. В Linux-дистрибутивах для этого можно использовать приложение ssh-keygen с ключом -R (важен регистр, поскольку ключ -r служит для печати на экран хэш-значений сохраненных ключей):

[alexander@silverado ~]$ ssh-keygen -R '[192.168.1.1]:2022'
# Host [192.168.1.1]:2022 found: line 1
/home/alexander/.ssh/known_hosts updated.
Original contents retained as /home/alexander/.ssh/known_hosts.old

Примечание

Начиная с версии KeeneticOS 2.11, незащищенные telnet-сессии управления интернет-центром через командную строку автоматически завершаются через 3 минуты неактивности пользователя. Значением этого таймаута можно управлять, но установить бесконечную продолжительность сессии нет возможности.

Для сессии SSH-подключения по умолчанию установлен таймаут 300 секунд (5 минут). При необходимости это значение можно увеличить. Данный параметр может принимать значение до 232-1 секунд включительно.