10. 6. 2014

SSH kľúče

Pre skripty využívajúce súbory z iných serverov je vhodné použiť ssh kľúče. Skripty potom nebudú obsahovať heslá. Komunikácia medzi nimi bude šifrovaná ako klasický ssh prístup na konzolu.

Na linuxových (unix like) serveroch je zvyčajne pre prístup použitý ssh server (sshd démon), ktorý umožňuje šifrované pripojenie sa do príkazového riadku (alebo aj prenos grafického X servera).

Pri centralizovaní monitorovacích skriptov, prípadne automatizovanom kopírovaní, zálohovaní súborov je potrebné riešiť bezpečné vzdialené pripojenie na server. Príkazy ako ssh a scp pre vzdialené pripojenie zámerne nepodporujú zadávanie hesla priamo v skripte (bezpečnostné riziko). 
Preto tu je možnosť použiť ssh kľúče, kde konkrétne spojenie nepožaduje heslo (musí teda prebiehať medzi dvoma dobre zabezpečenými kontami).


Vygenerovanie kľúčov

Na zdrojovom serveri (ak ešte nemáme) vygenerujeme ssh kľúče. Ide o verejný kľúč (koncovka .pub) a privátny. Používajú sa vo formátoch dsa a rsa.

Kontrola ~/.ssh/id_dsa.pub, alebo  ~/.ssh/id_rsa.pub
Ak neexistuje, vygenerujeme kľúč:
DSA:
ssh-keygen -d -b 2048
RSA:
ssh-keygen -t rsa -b 2048
- potvrdíme uloženie do default cesty
- heslo zadáme prázdne


Distribúcia kľúčov

Aby cieľový server vedel, že sa hlási overený používateľ, musí obsahovať jeho verejný kľúč v súbore authorized keys:
cat ~/.ssh/id_dsa.pub | ssh srv-ciel "cat >> ~/.ssh/authorized_keys" , alebo
cat ~/.ssh/id_rsa.pub | ssh srv-ciel "cat >> ~/.ssh/authorized_keys"

Aby súbor nemohol byť kompromitovaný, odmietne ssh kľúč fungovať (bez špecifikácie problému) pri silných právach.
Adresár .ssh má mať práva 700.
Súbor authorized_keys, súbory .pub majú mať 644.
Súbory s privátnymi kľúčmi (id_dsa resp id_rsa) majú mať iba 600.
Home adresár používateľa potrebuje mať práva 755. Upresním, na home adresár nemôže mať právo zápisu grupa, ako ochrana proti prepísaniu adresára .ssh niekym z grupy.

Adresár:
drwx------ 2 admin None 0 Mar 4 17:19 .ssh

Obsah:
-rw-r--r-- 1 admin None  1826 Jun 10 15:53 authorized_keys
-rw------- 1 admin None   668 May 18 2010  id_dsa
-rw-r--r-- 1 admin None   602 May 18 2010  id_dsa.pub
-rw------- 1 admin None  1675 Apr 25 2013  id_rsa
-rw-r--r-- 1 admin None   394 Apr 25 2013  id_rsa.pub
-rw-r--r-- 1 admin None 25725 Apr 10 16:57 known_hosts

Následne bude možné v skripte použiť príkazy scp admin@srv-ciel:/cesta/k/suboru ./ , rovnako ssh admin@srv-ciel "remote-prikaz" a pripojenie už prebehne bez pýtania hesla. Skripty tak možno napr nacronovať na pravidelné spúšťanie.

Žiadne komentáre:

Zverejnenie komentára