1. diel - Ssh - Konfigurácia a pripojenie
V tomto článku si vysvetlíme, čo je to SSH a ukážeme si jeho rôzne spôsoby použitia v praxi. Aj keď je SSH pôvodom linuxový nástroj, ukážeme si jeho použitie aj na Windows. A pre Mac platí v podstate to, čo pre Linux.
Čo je to SSH a na čo je dobré
SSH, čiže Secure Shell, vznikol ako náhrada za telnet. Telnet je protokol, ktorý umožňuje vzdialené pripojenie k inému počítaču (napr. Aj routery, switche) a textovú komunikáciu medzi nimi (vo forme vzdialeného terminálu). Nemusíte teda fyzicky prísť k danému zariadeniu a pripojiť si klávesnicu a monitor. Stačí byť pripojený k jednej sieti. Obrovská nevýhoda telnetu je to, že komunikácia prebieha ako plain-text - posielaná dáta nie sú nijako šifrované a ktokoľvek v sieti je teda môže odpočúvať. A práve v reakcii na toto (študenti ukradli heslá v univerzitnej sieti) bol v roku 1995 vyvinutý SSH.
SSH je teda zabezpečený komunikačný protokol (využíva TCP / IP). Okrem toho je to tiež názov unixového programu, ktorý pomocou tohto protokolu sprostredkováva komunikáciu medzi počítačmi na viacerých úrovniach. SSH umožňuje okrem prístupu k vzdialenému terminálu tiež prenos súborov a tzv. Sieťové tunelovanie, ktoré slúžia pre zabezpečený prenos akýkoľvek dát.
Inštalácia SSH
SSH sa skladá z dvoch častí, ktoré operujú nezávisle na sebe - klient a server. Funguje to tak, že ak sa chcete pripojiť na vzdialený počítač, stačí Vám len SSH klient. Podmienkou ale je, že na onom vzdialenom počítači musí byť nainštalovaný práve SSH server, ktorý Vám sprostredkuje potrebné služby. To znamená, že ak aj Vás počítač má prijímať SSH spojenie, musí na ňom byť nainštalovaný SSH server. Dnes sa pozrieme na inštaláciu a nastavenie klienta, o serveroch si povieme v ďalšom diele.
Linux a Mac
Tu je to naozaj jednoduché, pretože Mac a veľká väčšina Linuxových distribúcií majú SSH klienta už nainštalovaného. Ak by náhodou chýbal, stačí zadať príkaz (platí pre distribúcie založené na Debianu- napr. Ubuntu):
$ sudo apt-get install ssh
prípadne pre Red Hat distribúcie (Fedora):
$ sudo yum install ssh
Windows
Pre Windows existuje niekoľko alternatív SSH klientov, jednou z najpoužívanejších je potom napr. PuTTY. Môžete taky využiť Cygwin, čo je "emulátor" Linuxu pre Windows, a ssh používať tam. Hodí sa predovšetkým, ak si viac rozumiete s terminálom, než s GUI. My si ukážeme PuTTY, ktoré je veľmi jednoduché na použitie.
Pripojenia k serveru
Linux a Mac
Na SSH server sa pripojíte pomocou príkazu ssh, ktorý spustíte v termináli. Základná syntax programu je nasledujúci:
$ ssh [-vvv] [-p port] [uživatel@]server
Voľba -vvv (-vv, -v) znamená úroveň vypisovanie. Viac v znamená väčšiu úroveň. Maximálne možno použiť 3 v. Voľba -p nastavuje port na ktorý sa pripojiť.
Ak nezadáte používateľa, použije sa meno aktuálne prihláseného. Dávajte si pozor pri zadávaní hesla, na UNIXových systémoch sa totiž pri zadávaní nezobrazuje, a nezobrazujú sa namiesto neho ani zástupné znaky ako hviezdičky pod.
Ukážka typického použitia:
$ ssh [email protected]
prípadne s IP adresou:
$ ssh [email protected]
Táto správa sa vám zobrazí pri prvom pripojení na server z daného počítača, je normálne, a stačí napísať yes a potvrdiť.
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. Are you sure you want to continue connecting (yes/no)?
Ukážka pripojenie k PC s Windows:
Windows
Spustite PuTTY. Do Hostname napíšte IP adresu (prípadne meno) servera, ku ktorému sa chcete pripojiť (IP adresu počítača môžete jednoducho zistiť príkazom ipconfig na Windows a ifconfig na Linuxe). Port ve väčšine prípadov necháte na 22 (predvolený port pre SSH), ale na serveri je toto samozrejme možné zmeniť. Kliknite na tlačidlo Connect. Ak sa k danému serveru pripájate prvýkrát, zobrazí sa vám pravdepodobne varovanie podobné tomuto:
To potvrďte (dôležité je vedieť, že sa pripájame k serveru, ku ktorému chceme). PuTTY si uloží tzv. RSA kľúč servera a pri každom pripojení overí, či sa nezmenil. Ak áno, upozorní nás na to - môže to znamenať, že sa pripájame k serveru, ktorý sa len vydáva za server, ktorý chceme (pripojením k takému serveru by sme prakticky odtajneniu naše prihlasovacie údaje). Po potvrdení sa objaví terminálové okno. V ňom uvidíte text "login as:". Sem zadajte svoje používateľské meno. Následne sa objaví výzva na zadanie hesla. Ak zadáte platné informácie, objaví sa prompt, kde už môžete zadávať samotné príkazy.
Nastavenie SSH
Určite sa nám nechce zakaždým zadávať tie isté údaje. Klientov SSH našťastie umožnujú široké nastavenia a vytváranie tzv. Aliasov. Základné nastavenie klientov je väčšinou obdobné (podobné alebo rovnaké pomenovanie) a ak pochopíte princíp, mali by ste bez problému nastaviť rôzne programy.
Linux a Mac
/ etc / ssh / ssh_config
Globálne konfigurácie SSH klienta na UNIXových systémoch - nastavenie vykonané tu bude aplikované na všetkých užívateľov. Meňte len, ak viete, čo robíte ..
~ / .ssh / config
Personálne konfigurácia používateľa - tu si môžeme napríklad nadefinovať naše obľúbené servery, aby sme nemuseli zakaždým vypisovať celú ich adresu. Môžeme tu potlačiť globálnu konfiguráciu uvedenú v ssh_config. Tento súbor by mal byť zapisovateľný / čitateľný pre vlastníka, ale nie pre ostatné. (Práva 600)
Pre konfiguráciu SSH existuje niekoľko veľmi používaných direktív - ty si popíšeme. Ostatné možno nájsť v manuálovej stránke ssh_config (5).
Najčastejšie asi budeme chcieť vytvárať konfigurácie pre špecifické servery.
Host ex Port 2222 HostName example.cz User ucet
Keď sa budeme chcieť pripojiť, stačí už len napísať:
$ ssh ex
namiesto
$ ssh -p 2222 [email protected]
Ak chceme nastaviť niečo globálne - pre každé pripojenie, použijeme wildcard *
Host * ForwardX11 on
Ďalej uvediem niekoľko najpoužívanejších atribútov.
Port 2222
Port, ku ktorému sa pripojiť, predvolená je 22. V ukážke vidíme port 2222, čo je druhý najpoužívanejší port pre SSH.
HostName example.cz
Meno servera, na ktorý sa chceme pripojiť (môžeme použiť aj IP adresu).
User ucet
Používateľ, pod ktorým sa klient na server pripojí.
IdentityFile /cesta/ke/klíči
Z bezpečnostných dôvodov nemožno do konfiguračných súborov zadávať hesla. Môžeme však využiť prihlásenie kľúčom, o ktorom si povieme za chvíľu. V predvolenom nastavení sa kľúč hľadá v cestách ~ / .ssh / {id_dsa, id_rsa, id_ecdsa, id_ed25519}. Zaujímavá je taky escape sekvencia% r, ktorá sa nahrádza menom používateľa, ku ktorému sa prihlasujete, alebo% u, čo je meno lokálneho používateľa. Ak nemáte možnosť identifikovať sa pomocou kľúča (toto je nutné povoliť na strane servera), pri každom prihlásení budete musieť zadať svoje heslo.
ForwardX11 on
Zaujímavá vlastnosť, dovoľuje spúšťať X programy na serveri a ich okná zobrazovať u klienta. Povieme si o ňu v budúcich dieloch seriálu.
Windows
Pre Cygwin použite návod pre Linux. U PuTTY je základná konfigurácia veľmi jednoduchá. Základné údaje pre pripojenie nájdete v sekcii Session. PuTTY podporuje rôzne typy pripojenia, my použijeme samozrejme SSH. Je možné nastaviť užívateľov, ktorým sa budeme automaticky prihlasovať a to nastavením Auto-login username v sekcii Connection-> Data. Ak používate proxy, nastavte ho v sekcii Connection-> Proxy. O ostatných možnostiach konfigurácie si povieme neskôr, ale typicky pre bežné použitie je všetko nastavené tak, ako má byť.
Celú konfiguráciu je možné uložiť do profilu, a to v sekcii Session po zadaní mena, a kliknutí na Save. Potom si ju môžete načítať zvolením Príslušné session a kliknutím na tlačidlo Load.
Teraz už viete, ako sa k SSH pripojiť, a ako si vytvoriť vlastné SSH Server. V budúcom dieli preberieme niektoré pokročilé vlastnosti SSH, a ako ich využiť.