Agaton.cz

Pro automatizované přihlašování pomocí scriptů do routerů Mikrotik přes SSH je zapotřebí vygenerovat SSH klíče a rozkopírovat je do jednotlivých routerů. SSH-klíče je možné použít i pro přihlašování a kopírování mezi linuxovými servery bez nutnosti zadávat jméno/heslo.

pro generování klíčů není potřeba instalovat žádný dodatečný software.

ssh-keygen -t dsa

Při generování klíče se program ptá na heslo - žádné nevyplníme a stiskneme jen ENTER. Ve výpisu z běhu programu je zapotřebí najít řádek "Your public key has been saved in" a cesta k souboru id_dsa.pub .  Tento soubor je zapotřebí nakopírovat do Mikrotiku - pokud se na správu používá Winbox, je nejjednodušší tento klíč nejprve zkopírovat na administrátorský počítač (Win) a jednoduše "přetáhnout" do winboxu do složky "Files". Následně je zapotřebí v Mikrotiku přiřadit klíč k uživatelskému účtu. Pokud se mají pomocí SSH provádět i změny, musí mít tento účet plná administrátorská práva.

Jakmile je klíč k účtu přiřazen, je automaticky z "File listu" odstraněn.

Přiřazení je také možno provést z příkazového řádku mikrotiku:

[admin@Mikrotik] > /user ssh-keys import user=admin file=id_dsa.pub

Nyní je již možné vyzkoušet připojení na Mikrotik:

[root@server ~]# ssh -l admin -i /root/.ssh/id_dsa 10.20.30.40

MMM      MMM     KKK                      TTTTTTTTTTT     KKK
MMMM    MMMM     KKK                      TTTTTTTTTTT     KKK
MMM MMMM MMM III KKK  KKK RRRRRR   OOOOOO     TTT     III KKK KKK
MMM  MM  MMM III KKKKK    RRR RRR OOO  OOO    TTT     III KKKKK
MMM      MMM III KKK KKK  RRRRRR  OOO  OOO    TTT     III KKK KKK
MMM      MMM III KKK  KKK RRR RRR  OOOOOO     TTT     III KKK  KKK

MikroTik RouterOS 3.10 (c) 1999-2008 http://www.mikrotik.com/


[admin@Mikrotik] >

Při prvním použití je potřeba potvrdit zařazení IP adresy s klíčem protistanice do souboru known_hosts napsáním "YES" na výzvu programu ssh.

Aby se nemusel příkaz vždy zdlouhavě vypisovat, je vhodné si vytvořit alias:

[root@server ~]# alias mt='ssh -l admin -i /root/.ssh/id_dsa'

příklad použití:

[root@server ~]# mt 10.20.30.40 /system resource print
uptime: 3w1d11h32m16s
version: "3.25"
free-memory: 1835020kB
total-memory: 1945600kB
cpu: "Intel(R)"
cpu-count: 8
cpu-frequency: 2327MHz
cpu-load: 11
free-hdd-space: 11970kB
total-hdd-space: 121218kB
write-sect-since-reboot: 6860
write-sect-total: 39661504
architecture-name: "x86"
board-name: "x86"

[root@server ~]#

Přihlašování mezi linuxovými počítači

Pro možnost přihlašování pomoci klíče mezi linuxovými počítači je zapotřebí klíč id_dsa.pub nakopírovat na všechny spravované protistanice a přidat jej do souborů /root/.ssh/authorized_keys , každý klíč na samostatný řádek.

Poznámka: uvedené příklady jsou uvažovány pro uživatele "root". Pro normální uživatelská oprávnění je samozřejmě potřeba přizpůsobit cesty jak na straně zdrojového, tak i cílového počítače. A samozřejmě je také zapotřebí si uvědomit, že i obyčejný uživatel na straně zdrojového počítače může mít práva root na počítači cílovém - zde záleží do kterých souborů "authorized_keys" veřejný klíč nahrajeme. Soubory "authorized_keys" jsou uživatelsky závislé.

Přihlašování na linuxove stroje a Mikrotiky z Windows

Předpokladem je nainstalovaný programu PuTTY

Nejprve se spustí program PuTTYgen. V okně tohoto programu se zatrhne volba "SSH-2 DSA" a stiskne tlačítko "Generate". Nyní se náhodně pohybuje myší v prostoru okna až do okamžiku, než se klíče vygenerují. Hotové klíče se uloží - tlačítkem "Save public key" se pod jménem například "id_dsa.pub" uloží na nějaké dobře přístupné místo veřejný klíč. Naopak privátní klíč (se jménem například "id_dsa.ppk") se uloží na co nejlépe chráněné místo. Při ukládání privátního klíče je ještě zapotřebí potvrdit dotaz, zda opravdu chceme uložit klíč bez ochrany heslem. Oba klíče si ještě okamžitě zazálohujeme třeba na USB-klíčenku.

Z veřejného klíče si uděláme "pracovní" kopii a soubor otevřeme například ve WordPadu (NotePad neumí zalamovat řádky jen podle LF) a odstraníme řádky "BEGIN", "Comment" a "END". Dále odstraníme odřádkování - výsledkem musí být jeden dlouhý řadek, a na začátek tohoto řádku doplníme text "ssh-dss ". Nadále se bude používat jen tato upravená verze.

Veřejný klíč nyní rozkopírujeme na všechny spravované stroje - u Mikrotiků do "Files" s následným importem klíče (viz začátek této stránky), u linuxových stojů se opět klíč přidává do souborů /root/.ssh/authorized_keys.

Nyní je ještě zapotřebí nastavit program PuTTY. Po spuštění PuTTY se otevře okno, kde je implicitně vybrán řádek "Session" a zde se vyplní IP a port vzdáleného stroje a zatrhne se checkbox "SSH". Nyní si v levém okně vybere řádek "Data" (musí být rozbalena podnabídka "Window"). Zde se vyplní políčko "Auto-login username" (uživatelské jméno, pod kterým se má PuTTY přihlašovat - např. pro linux "root", pro Mikrotik "admin" ). Dále se rozbalí podnabídka "SSH" a vybere řádek "Auth". Zde pomocí tlačítka "Browse" načteme privátní klíč (id_dsa.ppk). Na řádku "Translation" (podnabídka Window) vybereme kódování UTF-8 a na řádku "Colours" si můžeme vybrat barvy pozadí a textu (např. změnou "Default Foreground na Red / Green / Blue na 255 / 255 / 0 si nastavíme žlutý text na černém pozadí). Volbou barvy pozadí případně barvy textu si můžeme nastavit na první pohled patrné rozlišování, co vlastně máme otevřené - například si zvolíme jinou barvu pro páteřní routery, jinou pro uživatelské routery, další barvu pro servery apod.  Dále přímo na řádku "Window" si můžeme nastavit implicitni velikost okna (např. 100 sloupců a 36 řádků) a na řádku "Apperance" se dá změnit implicitní font a velikost písma. Vrátíme se na řádek "Session" a ještě vyplníme políčko "Saved Sessions" a celou konfiguraci uložíme tlačítkem "Save".

Nyní by již mělo být pomocí výběru uložených Sessions a tlačítka "Open" plně funkční přihlašování bez hesla.