La'hev

Heverovy poznatky a poznámky

Uživatelské nástroje

Nástroje pro tento web


Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
linux:klic_misto_hesla [2015/03/11 11:14] – vytvořeno Heverlinux:klic_misto_hesla [2015/04/14 15:37] (aktuální) – [Umístění veřejného klíče na server] Hever
Řádek 1: Řádek 1:
-====== Klíč místo hesla pro SSH ======+====== Přihlašování na SSH pomocí klíče ====== 
 +[[:sifrovani_kryptografie|Šifrování - kryptografie]]
  
-===== Nástin principu =====+Přihlašování na [[SSH]] pomocí klíče je nejbezpečnější z mnoha metod, použitelných s OpenSSH. Už pro svou délku jsou klíče mnohem obtížněji prolomitelné hrubou silou než hesla. 
 + 
 +===== Princip =====
 Klient se serveru představí a žádá o komunikaci. Pokud má server u sebe uložený veřejný klíč toho kdo se představil, zašifruje jím nějaká data a pošle je klientovi. Ten je díky svému tajnému soukromému klíči jako jediný dokáže rozluštit a pošle zpět. Server díky tomu ví, že klient je skutečně ten za koho se vydává a je ověřený. Klient se serveru představí a žádá o komunikaci. Pokud má server u sebe uložený veřejný klíč toho kdo se představil, zašifruje jím nějaká data a pošle je klientovi. Ten je díky svému tajnému soukromému klíči jako jediný dokáže rozluštit a pošle zpět. Server díky tomu ví, že klient je skutečně ten za koho se vydává a je ověřený.
  
 Předtím je potřeba na server nahrát veřejný klíč klienta. Předtím je potřeba na server nahrát veřejný klíč klienta.
  
-===== Co udělat ===== +===== Generování klíče ===== 
-Na klientovi (jedním příkazem) vygenerovat veřejný a soukromý klíč (pokud jej ještě nemá) a potom veřejný klíč klienta přidat na serveru do souboru ''authorized_keys''.+Pokud nemám, vytvořit na klientovi adresář 
 +  mkdir ~/.ssh &&  chmod 700 ~/.ssh 
 + 
 +**Vygenerování** do souborů veřejný a soukromý klíč (pokud klient svůj bezpečně uchovávaný klíč ještě nemá) 
 +  ssh-keygen 
 + 
 +Možné volby 
 +  # specifikování typu, vychozi doporuceny je rsa 
 +  ssh-keygen -t rsa 
 +  # specifikování delky, vychozi a současně dostatečný je 2048 
 +  ssh-keygen -b 4096 
 + 
 +Budeme dotázání kam klíč uložit (nabízené výchozí místo je nejvhodnější), a na passphrase - přístupové heslo. 
 + 
 +Vygeneruje a uloží se klíč do ''~/.ssh'' (ve windows je to ''c:/Users/myUserName/.ssh''). Vytvoří soubory ''id_rsa'' a ''id_rsa.pub'' (privátní a veřejný). Privátní je nutné si střežit jako oko v hlavě, veřejný rozdávat. Pokud existuje klíč (tzn. soubor ''id_rsa'') v adresáři ''$HOME/.ssh'', aplikace ho obvykle rozpoznají a automaticky použijí, takže k němu není potřeba specifikovat cestu. 
 + 
 +==== Passphrase - přístupové heslo ==== 
 +Soukromý klíč můžeme zašifrovat pomocí hesla, takže případné odcizení souboru s klíčem bude útočníkovi k ničemu, když nebude znát heslo. Při použití klíče s heslem jsme potom na něj dotázání, v našem systému se privátní klíč rozšifruje a dále použije kam má. Pomocí ''ssh-add'' jde zadat heslo pro náš klíč jednorázově pro otevřené sezení. Heslo u veřejného klíče nedává smysl. Heslo lze později měnit (pomocí volby ''-p''). 
 + 
 +Heslo lze nezadávat - to dává smysl, pokud se je potřeba provádět automatizované ověřování identity bez interaktivity uživatele. 
 + 
 +Osobní klíč by měl být zašifrovaný silným heslem, doporučuje se 10 až 30 znaků. 
 + 
 +===== Umístění veřejného klíče na server ===== 
 +Veřejný klíč klienta je potřeba **přidat na server** do souboru ''~/.ssh/authorized_keys''
  
 <code> <code>
-ssh-keygen 
 scp ~/.ssh/id_rsa.pub uzivatel@domena.cz:~ scp ~/.ssh/id_rsa.pub uzivatel@domena.cz:~
 ssh uzivatel@domena.cz ssh uzivatel@domena.cz
Řádek 17: Řádek 43:
 rm ../id_rsa.pub rm ../id_rsa.pub
 exit exit
 +
 +# alternativně
 +ssh-copy-id -i ~/.ssh/id_rsa.pub uzivatel@domena.cz
 </code> </code>
  
-alternativně pokud systém umí ''ssh-copy-id''+**ověření funkčnosti**
 <code> <code>
-ssh-keygen +  ssh uzivatel@domena.cz ls 
-ssh-copy-id -i ~/.ssh/id_rsa.pub uzivatel@domena.cz + 
-ssh uzivatel@domena.cz ls+  # pokud klíč nemá standartní umístění  
 +  ssh -i cesta/ke/klici/klic uzivatel@domena.cz
 </code> </code>
  
-''ssh-keygen'' vygeneruje a uloží klíč do ''~/.ssh'' (ve windows je to ''c:/Users/myUserName/.ssh'')Vytvoří soubory ''id_rsa'' a ''id_rsa.pub'' (privátní a veřejný). Privátní je nutné si střežit jako oko v hlavě, veřejný rozdávat. +---- 
-Pokud existuje klíč (tzn. soubor ''id_rsa'') v adresáři ''$HOME/.ssh'', aplikace ho obvykle rozpoznají a automaticky použijí.+==== Troubleshooting ==== 
 +https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Troubleshooting
  
-Ověření funkčnosti např. +Možný problém v nastavených právech domovského a .ssh adresáře
-  ssh uzivatel@domena.cz ls+  chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && chmod go-w ~
  
-===== Typy klíčů ===== +Princip přihlašování klíčem patří k jinému princpitu kryptografie než přihlašování heslemKlíče http://forum.root.cz/index.php?topic=9660.msg104717#msg104717
-Je několik typů, použít RSA nebo DSA je dobrý nápadNejdoporučovanější je RSA (SSH-2 RSA)Poté se klíč určuje počtem bitů, 1024 nebo 2048 je dobrý nápad.+
linux/klic_misto_hesla.1426068849.txt.gz · Poslední úprava: 2015/03/11 11:14 autor: Hever