Прозрачный вход по ssh на устройство Mikrotik

Posted by

Хочу по аналогии с моими доверенными системами (/14.04 Server) подключаться и к устройствам задействуя ssh.

Все дальнейшие действия происходят на моей рабочей/домашней системе Ubuntu 12.04.5 Desktop amd64 ноутбука Lenovo ThinkPad E555.

Первым делом активирую службу удаленного безопасного подключения через SSH (port 22) (и FTP, port 21) на устройстве Mikrotik

ekzorchik@navy:~$ winbox – 192.168.1.9 – IP – Services – находим строку где присутствует надпись ssh & ftp и если строка затемнена активируем. Затем отключаемся от Mikrotik‘а.

Далее на системе Ubuntu генерируем/проверяем наличие пары публичного ключа хоста и приватного:

ekzorchik@navy:~$ ssh-keygen -t dsa

ekzorchik@navy:~$ ls .ssh/id_dsa*

.ssh/id_dsa .ssh/id_dsa.pub

После чего передаем публичный ключ на устройство mikrotik следующим образом:

ekzorchik@navy:~$ cp /home/ekzorchik/.ssh/id_dsa.pub iddsa

ekzorchik@navy:~$ ftp 192.168.1.9

Connected to 192.168.1.9.

220 ekzorchik FTP server (MikroTik 6.33.5) ready

Name (192.168.1.9:ekzorchik): ekzorchik

331 Password required for ekzorchik

Password:

230 User ekzorchik logged in

Remote system type is UNIX.

ftp>

передаю файл публичного ключа на mikrotik:

ftp> put iddsa

local: iddsa remote: iddsa

200 PORT command successful

150 Opening ASCII mode data connection for ‘/iddsa’

226 ASCII transfer complete

605 bytes sent in 0.00 secs (13427.7 kB/s)

ftp> bye

221 Closing

подключаюсь к устройству mikrotik через winbox, открываю консоль командной строки и скопированный выше файл отпечатка системы Ubuntu 12.04.5 Desktop amd64 импортирую в хранилище ключей удаленного доверенного доступа устройства Mikrotik:

ekzorchik@navy:~$ winbox – 192.168.1.9 (Login: admin, Password = 712mbddr@) – New Terminal -

[admin@ekzorchik] > user ssh-keys import public-key-file=iddsa

На заметку: если на устройстве Mikrotik заведен еще один пользователь с правами Администратора, то тогда нужно указать что публичный ключ с системы Ubuntu (на которой запускалась команда ssh-keygen -t dsa) применим для этого пользователя:

ekzorchik@navy:~$ ssh-keygen -t dsa

[ekzorchik@ekzorchik] > user ssh-keys import public-key-file=iddsa user=ekzorchik

На заметку: импортировать ключ на устройстве Mikrotik можно также не подключаясь через winbox, а просто подключить из локальной сети посредством утилиты telnet:

ekzorchik@navy:~$ telnet 192.168.1.9

Trying 192.168.1.9…

Connected to 192.168.1.9.

Escape character is ‘^]’.

MikroTik v6.33.5 (stable)

Login: ekzorchik

Password:

[ekzorchik@ekzorchik] > user ssh-keys import public-key-file=iddsa user=ekzorchik

[admin@ekzorchik] > quit

interrupted

Отлично, теперь продемонстрирую как будет происходить аутентификация с системы Ubuntu 12.04.5 Desktop amd64 на устройстве mikrotik при безопасном подключении через ssh:

ekzorchik@navy:~$ ssh -l ekzorchik 192.168.1.9

The authenticity of host ‘192.168.1.9 (192.168.1.9)’ can’t be established.

RSA key fingerprint is 38:67:29:0f:ad:91:6a:95:68:80:f7:4a:be:5c:61:2d.

Are you sure you want to continue connecting (yes/no)? Yes

Warning: Permanently added ‘192.168.1.9’ (RSA) to the list of known hosts.

ekzorchik@192.168.1.9’s password:

[ekzorchik@ekzorchik] > system routerboard print

;;; Firmware upgraded successfully, please reboot for changes

to take effect!

routerboard: yes

model: 2011UiAS-2HnD

serial-number: 614A052CFEA6

firmware-type: ar9344

current-firmware: 3.24

upgrade-firmware: 3.24

Выхожу и пробую подключить еще раз, пароль при подключении спрашиваться не должен:

[ekzorchik@ekzorchik] > quit

interrupted

Connection to 192.168.1.9 closed.

ekzorchik@navy:~$ ssh -l ekzorchik 192.168.1.9

ekzorchik@192.168.1.9’s password:

хм, странно – а почему у меня все же происходит запрашивание пароля, опять документация по настройке врет или же просто многое якобы само собой разумеющееся опускается, я же в свою очередь хочу все для себя разобрать:

Оказалось все очень просто, до этого я обновлял устройство и по окончании процедуры не перезагрузил устройство, кстати в выводе выше как раз присутствует информационное сообщение, что устройство обновлено и для активации изменений его нужно перезагрузить. Перезагрузив, пробую подключиться и вуаля – подключение через ssh происходит без какого либо запроса пароля, как раз то что мне и нужно было:

ekzorchik@navy:~$ ssh -l ekzorchik 192.168.1.9

192.168.1.9 via ssh

[ekzorchik@ekzorchik] >

[ekzorchik@ekzorchik] > quit

interrupted

Connection to 192.168.1.9 closed.

Еще интересным стоит выделить возможность подключившись выполнить команду не переходя всецело в консоль устройства Mikrotik:

ekzorchik@navy:~$ ssh ekzorchik@192.168.1.9 system routerboard print

routerboard: yes

model: 2011UiAS-2HnD

serial-number: 614A052CFEA6

firmware-type: ar9344

current-firmware: 3.24

upgrade-firmware: 3.24

ekzorchik@navy:~$ ssh ekzorchik@192.168.1.9 file print

# NAME TYPE SIZE CREATION-TIME

0 advanced-tools-6.32… package 100.1KiB jan/02/1970 05:05:55

1 skins directory jan/01/1970 03:00:01

2 auto-before-reset.b… backup 78.1KiB jul/27/2015 18:50:44

3 pub directory jan/02/1970 03:06:19

4 hotspot-6.32.1-mips… package 184.1KiB jan/02/1970 05:07:44

5 system-6.32.1-mipsb… package 6.8MiB jan/02/1970 05:08:01

6 ekzorchik-20151218-… backup 49.0KiB dec/17/2015 21:48:50

7 dhcp-6.32.1-mipsbe.npk package 168.1KiB jan/02/1970 05:07:35

8 autosupout.rif .rif file 491.7KiB jan/27/2016 14:16:47

посредством этой возможности можно сделать хоть и корявый но как на первый шаг сгодится скрипт, который будет делать бекап устройства, забирать/отправлять по почте/ftp бекап на доверенное хранилище.

А теперь если же нужно забрать с устройства Mikrotik к примеру конфигурационный файл устройства со всеми настройками или же просто бекап, то сделать это можно следующим образом:

[ekzorchik@ekzorchik] > system backup save name=backup

Saving system configuration

Configuration backup saved

[ekzorchik@ekzorchik] > file print

# NAME TYPE SIZE CREATION-TIME

0 skins directory jan/01/1970 07:00:02

1 disk4 disk dec/15/2015 18:30:44

2 Mikrotik_27012015.b… backup 13.0KiB jan/27/2016 20:17:52

3 backup.backup backup 13.0KiB jan/27/2016 20:19:56

ekzorchik@navy:~$ sftp ekzorchik@192.168.1.9:backup.backup

Connected to 192.168.1.9.

Fetching /backup.backup to backup.backup

/backup.backup 100% 13KB 13.0KB/s 00:00

ekzorchik@navy:~$ dir -sh backup.backup & file backup.backup

[1] 30479

16K backup.backup

backup.backup: data

[1]+ Готово dir -sh backup.backup

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

ekzorchik@navy:~$ nano backup_192_168_1_9

#!/bin/bash

bfile=$(date +%d%m%y_%H_%M)

ssh admin@192.168.1.9 system backup save name=Backup192_168_1_9_$bfile

sftp admin@192.168.1.9:Backup192_168_1_9_$bfile.backup

ekzorchik@navy:~$ chmod +x backup_192_168_1_9

Запускаю данный скрипт:

ekzorchik@navy:~$ ./backup_192_168_1_9

Configuration backup saved

Connected to 192.168.1.9.

Fetching /Backup192_168_1_9_270116_17_03.backup to Backup192_168_1_9_270116_17_03.backup

/Backup192_168_1_9_270116_17_03.backup 100% 13KB 13.0KB/s 00:00

ekzorchik@navy:~$ dir -sh Backup192_168_1_9_270116_17_03.backup && file $_

16K Backup192_168_1_9_270116_17_03.backup

Backup192_168_1_9_270116_17_03.backup: data

Отлично — это полный бекап, а теперь нужно добавить еще в скрипт экспорт всех настроек в виде скрипта выполнив который при восстановлении произойдет восстановление функционала до рабочего уровня если вдруг что-то произошло (вышло из строя/неосторожная настройка и т.д.)

#!/bin/bash

bfile=$(date +%d%m%y_%H_%M)

efile=$(date +%d%m%y_%H_%M)

ssh admin@192.168.1.9 system backup save name=Backup192_168_1_9_$bfile

ssh admin@192.168.1.9 export file=Export192_168_1_9_$efile.rsc

sftp admin@192.168.1.9:Backup192_168_1_9_$bfile.backup

sftp admin@192.168.1.9:Export192_168_1_9_$efile.rsc

ekzorchik@navy:~$ ./backup_192_168_1_9

Configuration backup saved

Connected to 192.168.1.9.

Fetching /Backup192_168_1_9_270116_17_12.backup to Backup192_168_1_9_270116_17_12.backup

/Backup192_168_1_9_270116_17_12.backup 100% 16KB 15.9KB/s 00:00

Connected to 192.168.1.9.

Fetching /Export192_168_1_9_270116_17_12.rsc to Export192_168_1_9_270116_17_12.rsc

/Export192_168_1_9_270116_17_12.rsc 100% 244 0.2KB/s 00:00

ekzorchik@navy:~$ dir -sh Export192_168_1_9_270116_17_12.rsc && file $_

4.0K Export192_168_1_9_270116_17_12.rsc

Export192_168_1_9_270116_17_12.rsc: ASCII text, with CRLF line terminators

Ну вот уже лучше, не правда ли, я посредством скрипта и активированной возможности аутентификации на устройстве Mikrotik посредством публичного ключа с доверенного хоста провожу без парольный вход, делаю бекап и экспорт всех команд посредством которых настроено оборудование (применяется в целях изучения, а как сделать ту или иную настройку не через Winbox или же Web-интерфейс, а задействовав командную строку – так более продуктивно и приобретается опыт), как на устройство так и на локальную систему Ubuntu 12.04.5 Desktop amd64

Ну а что теперь, считаю данную заметку завершенной, в дальнейшем на основе этой я рассмотрю другую еще более интересную и практическу, а пока собственно все – с уважением автор блога, ekzorchik.

Leave a Reply

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

1 × четыре =