Віддалений доступ по SSH до командного рядка Keenetic
Сервер SSH (Secure Shell) дозволяє безпечно підключатися до командного рядка роутера. Зараз ми розглянемо, як налаштувати пристрій для віддаленого підключення до його інтерфейсу командного рядка (CLI) за протоколом SSHv2.
Для запуску сервера SSH у Keenetic повинен бути встановлений системний компонент Сервер SSH. Ви можете зробити це на сторінці Загальні налаштування системи в розділі KeeneticOSОновлення та компоненти, натиснувши Параметри компонентів.

Після встановлення компонента сервер SSH увімкнеться автоматично. Доступ до нього можливий у локальних інтерфейсах із приватним рівнем безпеки. Для отримання інформації про рівні доступу, що визначають рівень безпеки (логіку брандмауера), див. статтю Налаштування правил брандмауера з інтерфейсу командного рядка.
Щоб дозволити доступ із зовнішніх мереж, сервер SSH повинен мати публічний рівень безпеки. Виконайте команди в інтерфейсі командного рядка роутера:
(config)>ip sshCore::Configurator: Done. (config-ssh)>security-level publicSsh::Manager: Security level changed to public.
Щоб уникнути небажаних спроб злому ботами, випадковими хакерами Black/Gray Hat, а також у випадках, коли стандартний порт уже використовується сервером SSH у підсистемі OPKG, рекомендується змінити стандартний порт сервера. Порт за замовчуванням, на якому працює сервер, — це стандартний порт 22. Ви можете змінити його на один із невикористовуваних номерів (наприклад, 2022):
(config-ssh)> port 2022
Ssh::Manager: Port changed to 2022.Тепер користувачі, які мають доступ до командного рядка Keenetic, зможуть підключатися до зовнішньої IP-адреси пристрою на порту 2022 з клієнта SSH та отримувати доступ до його командного рядка через захищений зашифрований канал.
Щоб зберегти налаштування, потрібно виконати команду:
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...Підключення до сервера SSH
Для підключення до Keenetic за протоколом SSH, ви можете використовувати будь-яку термінальну програму, що підтримує цей тип з'єднання. Наприклад, безкоштовний клієнт PuTTY.
Завантажте, встановіть і запустіть на своєму комп'ютері термінальний клієнт PuTTY. У полі Тип з'єднання вкажіть тип з'єднання SSH. У полі Ім'я хоста або IP-адреса введіть мережеве ім'я або IP-адресу пристрою (локальну IP-адресу при підключенні з домашньої мережі або публічну WAN IP-адресу при підключенні з Інтернету), а в полі Порт — номер порту, за яким буде встановлено з'єднання (за замовчуванням протокол SSH використовує порт 22, у нашому прикладі використовується порт 2022).

Після натискання кнопки Відкрити вам буде запропоновано ввести логін та пароль для автентифікації на пристрої. Введіть облікові дані облікового запису адміністратора. Після успішного введення логіна та пароля адміністратора з'явиться командний рядок роутера.

Також легко встановити з'єднання 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 , де замість слід вказати потрібний алгоритм — наприклад, 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 секунд включно.