OpenSSH server

Úvod

Táto časť príručky Ubuntu servera hovorí o mocnej kolekcii nástrojov, určených na vzdialenú správu počítačov v sieti a na prenos dát medzi počítačmi, ktorá sa nazýva OpenSSH. V tejto časti sa tiež naučíme, ako sa dá prispôsobiť konfigurácia aplikácií OpenSSH servera a ako ju môžeme zmeniť v systéme Ubuntu.

OpenSSH je voľne dostupná verzia Secure Shell (SSH) protokola obsahujúceho nástroje pre vzdialenú správu počítača a prenos súborov. Tradičné nástroje, ktoré sa často používajú na tento účel, ako napríklad telnet alebo rcp, nie sú bezpečné a prenášajú heslo používateľa ako bežný text. OpenSSH poskytuje serverového démona a klientské nástroje, ktoré umožňujú bezpečnú šifrovanú vzdialenú správu a prenos súborov, a ktoré dokážu efektívne nahradiť bežné nástroje.

Súčasť OpenSSH servera - sshd, nepretržite čaká na spojenie niektorého z klientských nástrojov. Keď nastane požiadavka na spojenie, sshd nastaví správny typ spojenia v závislosti od toho, ktorý z nástrojov sa chce pripojiť. Napríklad. ak sa vzdialený počítač snaží pripojiť pomocou klientskej aplikácie ssh, OpenSSH server pripraví po autentifikácii reláciu so vzdialenou správou. Ak sa vzdialený používateľ pokúša pripojiť k OpenSSH serveru pomocou scp, démon OpenSSH servera sa po autentifikácii pripraví na bezpečný prenos súborov medzi serverom a klientom. OpenSSH môže použiť mnoho spôsobov autentifikácie, vrátane bežného hesla, verejného kľúča, či tzv. vstupeniek systému Kerberos.

Inštalácia

Inštalácia OpenSSH klientských a serverových aplikácií je jednoduchá. Ak chceme nainštalovať klientske aplikácie v systéme Ubuntu, zadáme nasledujúci príkaz do príkazového riadka:

sudo apt-get install openssh-client

Ak chceme nainštalovať serverové aplikácie OpenSSH a podporu bezpečného prenosu súborov, do príkazového riadka zadáme:

sudo apt-get install openssh-server

Balík openssh-server si môžeme vybrať už pri inštalácii systému Ubuntu Server.

Konfigurácia

Predvolené správanie serverovej aplikácie OpenSSH - sshd môžeme zmeniť v konfiguračnom súbore /etc/ssh/sshd_config. Informácie o direktívach použitých v tomto konfiguračnom súbore získame na stránkach man-u zadaním nasledujúceho príkazu:

man sshd_config

Konfiguračný súbor sshd obsahuje mnoho direktív, ktoré riadia také veci ako je komunikácia či autentifikácia. Ukážeme si niekoľko príkladov nastavenia direktív, ktoré môžeme vykonať v súbore /etc/ssh/sshd_config.

[Tip]

Pred tým, ako začnete meniť akýkoľvek konfiguračný súbor, mali by ste si vytvoriť kópiu pôvodného súboru a nastaviť ho iba na čítanie, aby ste mohli pôvodné nastavenia použiť kvôli porovnaniu a v prípade potreby sa ku nim vrátiť.

Vytvorte kópiu súboru /etc/ssh/sshd_config a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Tu sú sľúbené konfiguračné direktívy, ktoré môžeme zmeniť:

  • Ak chceme zmeniť, aby OpenSSH démon načúval na TCP porte 2222 miesto štandardného TCP portu 22, zmeníme direktívu Port takto:
    Port 2222
  • Ak chceme sshd povoliť prihlásenie pomocou verejného kľúča, jednoducho pridáme alebo zmeníme riadok:
    PubkeyAuthentication yes
    Ak riadok v súbore /etc/ssh/sshd_config už existuje, uistíme sa, že nie je zapoznámkovaný.
  • Ak chceme, aby náš OpenSSH server zobrazil pri prihlásení obsah súboru /etc/issue.net, jednoducho pridáme alebo upravíme riadok:
    Banner /etc/issue.net
    v súbore /etc/ssh/sshd_config.

Po vykonaní zmien v súbore /etc/ssh/sshd_config, súbor uložíme a reštartujeme serverovú aplikáciu sshd, aby sa zmeny prejavili. Urobíme to zadaním nasledujúceho príkazu do príkazového riadka:

sudo /etc/init.d/ssh restart
[Warning]

Pre sshd existuje mnoho ďalších nastavení, ktoré zmenia správanie serverovej aplikácie podľa vašich potrieb. Mali by ste však vedieť, že ak je ssh jediný spôsob, akým sa viete dostať na server a urobíte chybu pri nastavovaní sshd pomocou konfiguračného súboru /etc/ssh/sshd_config, po reštarte serverovej aplikácie sa môže stať, že sa nebudete vedieť prihlásiť alebo že sa serverová aplikácia sshd kvôli chybe v konfiguračnom súbore ani nespustí. Pri úprave nastavení na vzdialenom serveri buďte preto obzvlášť opatrní.

SSH kľúče

SSH kľúče umožňujú autentifikáciu medzi dvoma stanicami bez potreby použitia hesla. Autentifikácia pomocou SSH kľúčov používa dva kľúče, súkromný kľúč a verejný kľúč.

Ak chceme kľúče vygenerovať, zadáme do príkazového riadka príkaz:

ssh-keygen -t dsa

Tento príkaz vygeneruje kľúče za pomoci DSA autentifikačnej identity používateľa. Počas procesu sa systém opýta na heslo. Pri tejto výzve stlačíme iba Enter a kľúč sa vytvorí.

Za normálnych okolností sa verejný kľúč uloží do súboru ~/.ssh/id_dsa.pub a súkromný kľúč zasa do súboru ~/.ssh/id_dsa. Teraz nakopírujeme súbor id_dsa.pub na vzdialenú stanicu a pripojíme ho do súboru ~/.ssh/authorized_keys zadaním príkazu:

ssh-copy-id pouzivatel@vzdialena_stanica

Nakoniec pre istotu dvakrát skontrolujeme práva k súboru authorized_keys, aby ho mohli čítať a zapisovať do neho iba oprávnení používatelia. Ak práva nie sú správne nastavené, zmeníme ich pomocou príkazu:

chmod 644 .ssh/authorized_keys

Teraz sa budeme môcť pripojiť cez SSH k vzdialenému počítaču bez nutnosti zadania hesla.