Logowanie do mikrotika kluczami ssh

W tym wpisie chciałbym pokazać wam jak za pomocą kluczy ssh zalogować się do mikrotika przez konsole. Funkcjonalność może okazać się pomocna przy korzystaniu z automatyzacji np. ansible.

Generujemy klucz publiczny

$ssh-keygen -t rsa

Jeżeli w trakcie generowania nie podaliśmy ścieżki gdzie ma być zapisany nasz klucz będzie tu: /home/user/.ssh/

Wygenerowany klucz kopiujemy do mikrotika poleceniem (tu jeszcze zostaniemy poproszeni o hasło). Adres naszego router – 192.168.20.1:

$scp ~/.ssh/id_rsa.pub admin@192.168.20.1:key.pub

Dodajemy klucz i przypisujemy do użytkownika admin (tu jeszcze zostaniemy poproszeni o hasło):

ssh admin@192.168.20.1 "/user ssh-keys import public-key-file=key.pub user=admin"

Lub logujemy się do mikrotika via winbox. Z menu wybieramy New Terminal i wpisujemy komendę:

[admin@MikroTik] > /user ssh-keys import public-key-file=key.pub user=admin

Nasz klucz został dodany. Aby to sprawdzić w konsoli mikrotika wpisujemy

[admin@MikroTik] > /user ssh-keys print 

lub

$ ssh admin@192.168.20.1 "/user ssh-keys print"

W tym momencie już nie zostaniemy poproszeni o hasło. Logowanie będzie wykonane przy wykorzystaniu kluczy.

Bonus. Wykonanie kopii ustawień po przez ssh

Z poziomu terminala naszego systemu logujemy się do mikrotika i wykonujemy polecenie kopii zapasowej:

$ ssh admin@192.168.20.1 /system backup save name=mikrotik.backup

Aby pobrać kopie ustawień na dysk lokalny naszego komputera wykonujemy polecenie:

scp admin@192.168.20.1:/mikrotik.backup ./