Я покажу как использовать встроенный SSH клиент на MikroTik. И как с помощью SSH ключей подключиться с одного MikroTik на другой.

Подключение и отключение

Для подключения из одного MikroTik к другому можно использовать протокол ssh. Делается это с помощью встроенного ssh клиента «/system ssh». Вот пример:

/system ssh user=admin address=172.21.0.12

После выполнения этой команды, у вас будет запрошен пароль от пользователя admin на удаленном роутере. И после ввода пароля вы подключитесь к нему.

Чтобы отключиться от удаленного роутера используйте команду:

:quit

Выполнение команд и скриптов

Для того чтобы подключиться к удалённому Mikrotik, выполнить команду и отключиться от него, можно использовать такую конструкцию: : /system ssh user= <пользователь> address= <ip-адрес> command=»<команда>». Например так:

/system ssh user=admin  address=172.21.0.12 command="/system/script/ run script1"

Скрипт при этом должен находится на удалённом роутере. Или вместо скрипта можно выполнить любую команду.

При этом также потребуется вводить пароль, что не всегда удобно. А если подключаться нужно не интерактивно, то использовать пароль вообще не возможно. В этом случае используются ssh ключи.

А ещё при не интерактивном выполнении вместо /system ssh нужно использовать /system ssh-exec. Это делается например в планировщике заданий /system/scheduler вот так:

/system ssh-exec user=admin  address=172.21.0.12 command="/system/script/ run script1"
RouterOS - New Schedule
RouterOS — New Schedule

Подключение с помощью ssh ключей

К сожалению RouterOS не позволяет сгенерировать ssh ключи. Так что для генерации нужно использовать другую операционную систему.

Создание ключей на Windows

Для создания SSH ключей на Windows будем использовать «PuTTY Key Generator«. Но для начала вам нужно скачать и установить приложение «PuTTY«. Скачать его можете от сюда.

После установки, запустите программу «PuTTYgen.exe» и нажмите на кнопку «Generate«:

PuTTY Key Generator
PuTTY Key Generator

Дальше начните перемещать мышку, чтобы сгенерировать ssh ключи.

После генерации вы увидите такое окно:

PuTTY Key Generator. Сгенерированный ключ
PuTTY Key Generator. Сгенерированный ключ

Скопируйте выделенную часть, вставьте в текстовый файл и сохраните под названием ssh.pub (или под каким-нибудь другим, но чтобы было понятно что это публичный ключ).

Для сохранения приватного ключа нажмите в верхнем меню кнопку «Conversions» и «Export OpenSSH key«:

PuTTY Key Generator. Экспорт приватного ключа
PuTTY Key Generator. Экспорт приватного ключа

Сохраните файл под именем ssh.private (чтобы было понятно, что это приватный ключ).

Загрузка ключей на роутеры

Теперь переходим к роутерам MikroTik. Подключаемся к ним используя WinBox. Дальше нажимаем в левом меню кнопку «File» и загружаем оба файла на роутер с которого будем подключаться:

RouterOS. Загрузка ssh ключей
RouterOS. Загрузка ssh ключей

А на роутер к которому будем подключаться нужно загрузить только публичный ключ:

RouterOS. Загрузка ssh ключей
RouterOS. Загрузка ssh ключей

Настройка ключей

Пока мы лишь загрузили файлы ключей на роутеры, но не заставили их работать. А чтобы это сделать нужно на обоих роутерах перейти в /Sustem/Users.

На том роутере с которого мы будем подключаться нужно перейти на вкладку «SSH Private Keys«. А на роутере к которому мы планируем подключаться нужно перейти на вкладку «SSH Keys«.

Вот так импортируется приватный ключ. Мы нажимаем на кнопку «Import SSH Private Key«, затем заполняем поля, и нажимаем кнопку » Import SSH Private Key» (только уже в другом окне):

RouterOS. Импорт приватного ключа
RouterOS. Импорт приватного ключа

Если вы перепутаете приватный ключ с публичным, то система даст вам импортировать ключи. Но при подключении по ssh вы увидите вот такую ошибку:

error: "0D078079:" lib(13):func(120):reason(121)

По аналогии импортируем бубличный ключ на роутере к которому будем подключаться:

RouterOS. Импорт публичного ключа
RouterOS. Импорт публичного ключа

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

/system ssh user=admin address=172.21.0.12 command=":log info Hello!"

На втором роутере в логах увидите такие записи:

RouterOS. Логи подключения по ssh
RouterOS. Логи подключения по ssh

Первая запись о подключении к нему по ssh, вторая запись сделана нашей командой, а третья об отключении.

Но запомните, что не интерактивно, то-есть в Scheduler или Watchdog лучше использовать — /system ssh-exec.

Создание ключей на Linux

Дополнительно я вам покажу как сгенерировать ssh ключи на Linux. Для этого используйте следующую команду:

# ssh-keygen -t rsa -m pem -f /root/ssh-for-mikrotik

После чего у вас появится пара ключей в каталоге /root:

# ls -l /root/
total 9
-rw------- 1 root root 1823 Nov 23 08:25 ssh-for-mikrotik
-rw-r--r-- 1 root root  395 Nov 23 08:25 ssh-for-mikrotik.pub

Файл без разрешения — это приватный ключ, а файл с разрешением .pub — публичный ключ.

Загрузите их на роутеры и импортируйте ключи точно также как и ключи, которые вы делали на Windows.


Возможно Вам также будет интересна и другая статья: MikroTik. Основы написания скриптов.

Если остались вопросы, задавайте их в комментариях.

Сводка
MikroTik. SSH Клиент
Имя статьи
MikroTik. SSH Клиент
Описание
Я покажу как использовать встроенный SSH клиент на MikroTik. И как с помощью SSH ключей подключиться с одного MikroTik на другой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *