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 ./