Autentifikačný server a prihlasovanie na stroje
Ako to celé funguje sa dá [http://en.wikipedia.org/wiki/Ssh-agent dočítať] [http://en.wikipedia.org/wiki/Public-key_cryptography na] [http://en.wikipedia.org/wiki/Challenge-response_authentication wikipedii], no v pre lenivých skratke:
* používateľ si vygeneruje kľúč skladajúci sa z privátnej a verejnej časti
* verejnú časť si používateľ uloží do {{authorized_keys}} na strane servera
* privátna časť sa zvykne pripojiť na keyring (ie. ssh-agent)
* pri autentifikácii sa namiesto hesla sshd, ssh a ssh-agent cez kľúč dohodnú
ssh user certifikáty
generovanie ssh kľúča
Svoj kľúč si vygenerujete pomocou:
ssh-keygen -t dsa -b 1024
Proces sa opýta na umiestnenie kľúča (nechať tak) a na používateľské heslo. To by malo byť zvolené dostatočne silné pre prípad, že by sa niekomu podarilo dostať sa ku vášmu privátnemu kľúču.
Výsledkom by mali byť súbory id_dsa a id_dsa.pub v adresári ~/.ssh/.
distribúcia verejného kľúča
Bežou úlohou je prihodiť si verejný kľúč do authorized_keys súborov na serveroch ku ktorým sa chceme cez kľúč prihlasovať.
prihlasovanie
Pred prvým prihlasovaním je vhodné pridať si svoj kľúč do keyring-u pomocou príkazu:
ssh-add
Od tohoto okamihu sa pri prístupe na server bude primárne používať kľúč.
prihlasovanie cez tunel
ssh-agent beží len lokálnom stroji, a tak sa vzdialené požiadavky o autentifikáciu (ssh z netvor-a) ku nemu nedostanú. Riešením je forwardovať si autentifikačný socket na stroj cez ktorý tunelujeme. To sa dá dosiahnuť buď ručným forwardovaním pri každom volaní ssh:
ssh -A netvor.sk
Alebo pridaním záznamu do ssh_config:
Host netvor.sk
ForwardAgent yes
Bezpečnosť
1. nepoužívajte kľúče bez hesla alebo so slabým heslom. v okamihu keď sa niekto dostane ku vášmu kľúču vám silnejšie heslo poskytne dostatočne dlhú dobu na vygenerovanie nového kľúča a odstránenie starého.
2. pre každé zariadenie vygenerujte extra kľúč, ideálne priamo na zariadení (za predpokladu že nepoužívate starého debian-a a príbuzných pokémonov)
3. keď odchádzate od svojho železa alebo ho niekomu požičiavate, zamknite si železo alebo odstránte kľúč z keyringu
ssh-add -D
4. keď si myslíte že sa ku vášmu kľúču mohol niekto dostať, vygenerujte si nový a vymeňte ho za starý.
5. obmienať si čas od času kľúče len tak je prínosné.
6. neforwardujte autentifikačný socket (ssh -A) na servery ktoré niesú bezpečné ie. verejný server, root access má niekto iný, existuje podozrenie ze server nám niekto urobil...