C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -1- C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kamenice 5, CZ-62500 Brno Revize 3 C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -2SSH klíče man ssh SSH klíče zásadně nepoužívejte pro přihlašování do MetaCentra nebo na klastech NCBR či CEITEC MU. Nevytvoří se během něj kerberovské lístky, bez kterých je prostředí těchto klastrů nepoužitelné!!! Vhodné pouze pro práci v IT4I nebo individuálními linuxovými stroji. C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -3- Workflow PC1 UI node01 nodeXX přihlašovaní mezi uzly klastru bez nutnosti zadávat heslo s heslem bez hesla s ssh klíčem #1 bez hesla s ssh klíčem #2 PC2 (tento způsob není povolen v IT4I) nesdílený souborový systém sdílený souborový systém Autentizace pomocí ssh klíčů je založena na asymetrickém šifrování využívající pár šifrovacích klíčů (veřejný a soukromý klíč). C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -4Asymetrické šifrování klíč I klíč IIpár šifrovacích klíčů zpráva šifrovaná zpráva šifrovaná zpráva zpráva šifrovaná zprávazpráva Dešifrování zprávy klíčem použitým pro šifrování není prakticky proveditelné. C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -5Asymetrické šifrování, použití I veřejný klíč soukromý klíč Odesílatel Příjemce Utajený přenos zprávy: 1. získání veřejného klíče příjemce 2. šifrování zprávy odesílatele veřejným klíčem příjemce 3. odeslání šifrované zprávy přes nezabezpečenou síť 4. příjemce dešifruje zprávu svým soukromým klíčem síťové přenosy zpráva šifrovaná zpráva pár šifrovacích klíčů Kdokoliv, kdo zcizí soukromý klíč příjemce, muže dešifrovat přenášené zprávy! 11 22 33 44 C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -6Asymetrické šifrování, použití II veřejný klíč soukromý klíč Odesílatel Příjemce Ověření odesílatele veřejné zprávy: 1. zašifrování zprávy soukromým klíčem odesílatele 2. příjemce získá zašifrovanou zprávu a veřejný klíč odesílatele 3. příjemce dešifruje zprávu veřejným klíčem odesílatele síťové přenosy veřejná zpráva šifrovaná zpráva pár šifrovacích klíčů Kdokoliv, kdo zcizí soukromý klíč odesílatele, se za něj může vydávat! 11 22 33 44 C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -7Autorizovaný veřejný ssh klíč veřejný klíč soukromý klíč Lokální stroj (ssh klient) Vzdálený stroj (ssh server) síťové přenosy ověřovací token šifrovaná zpráva autorizované klíče 11 vytvoří ověřovací token 22 33 44 55 66 porovnání ověření identity uživatele (zjednodušeno) kopie manuálně provedená uživatelem (jednou) šifrovaný přenos protokolem ssh Kdokoliv, kdo zcizí soukromý klíč uživatele, se může přihlásit na vzdálený stroj! ssh pár šifrovacích klíčů C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -8Nesdílený souborový systém autorizované klíče ssh ssh respektive vyžaduje heslo klíče Situace, kdy stroje nemají sdílený domovský adresář: stroj #1 stroj #2 kopie veřejného klíče pomocí scp a vložení jeho kopie do autorizovaných klíčů (pouze jednou) C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -9Sdílený souborový systém autorizované klíče ssh ssh klíče Situace, kdy stroje mají sdílený domovský adresář: autorizované klíče klíče identickýobsah,rozdílnérole oba soubory jsou na sdíleném souborovém systému je možné použít (pouze jednou) cat id_rsa.pub >> authorized_kyes C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -10Vytvoření páru v/s klíče [kulhanek@wolf01 ~]$ cd .ssh [kulhanek@wolf01 .ssh]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/kulhanek/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/kulhanek/.ssh/id_rsa. Your public key has been saved in /home/kulhanek/.ssh/id_rsa.pub. The key fingerprint is: e9:07:0b:fc:17:23:b3:c5:1a:8a:0c:1a:98:8f:fe:28 kulhanek@wolf01.wolf.inet [kulhanek@wolf01 .ssh]$ ls –l -rw------- 1 kulhanek lcc 1675 Mar 21 2012 id_rsa -rw-r--r-- 1 kulhanek lcc 395 Mar 21 2012 id_rsa.pub -rw------- 1 kulhanek lcc 13380 Sep 4 15:55 known_hosts Passphrase se nezadává! Podrobnější popis: man ssh seznam otisků palců strojů, na které jste se přihlásili pomocí příkazu ssh Pár veřejného a soukromého klíče se vytváří na daném stroji nebo skupině strojů, které mají sdílený adresář, POUZE jednou. soukromý klíč NESMÍ být čitelný pro skupinu a svět C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -11Vytvoření autorizovaných klíčů - I Vložení veřejného klíče do seznamu autorizovaných klíčů: [kulhanek@node ~]$ cd .ssh [kulhanek@node ~]$ cat id_rsa.pub >> .ssh/authorized_keys [kulhanek@node .ssh]$ ls –l -rw-r--r-- 1 kulhanek lcc 395 Sep 25 2012 authorized_keys Podrobnější popis: man ssh Soubor authorized_keys může obsahovat více veřejných klíčů, každý je pak na jedné řádce. Pokud přihlašování pomocí autorizovaných veřejných klíčů nebude fungovat : • ověřte přístupová práva jednotlivých souborů (písmenka r, w (eventuálně x) ve výpisu příkazu ls -l) • pokud běží ssh agent, odstraňte klíče, které má ve správě: $ ssh-add –D • znovu se přihlaste přístupová práva pro soubor authorized_keys, pro skupinu a jiné - maximálně právo pro čtení sdílený souborový systém C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -12Vytvoření autorizovaných klíčů - II nesdílený souborový systém Dvě možnosti: 1) Veřejný klíč je nutné překopírovat na vzdálený klastr. A poté klíč vložit do seznamu autorizovaných klíčů. 2) Alternativou je použití příkazu ssh-copy-id, který veřejný klíč nakopíruje na vzdálený stroj a zároveň jej vloží do seznamu autorizovaných klíčů. C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -13Vytvoření autorizovaných klíčů - II $ scp [-r] zdroj cil Syntaxe příkazu scp: [] - možno vynechat Zdroj a cíl může být soubor nebo adresář. V případě kopírovaní adresářů je nutno použít volbu –r (recursive). Vzdálený cíl nebo host se identifikuje názvem stroje odděleného od jména souboru či adresáře dvojtečkou. [user@]hostname:[cesta/]soubor nesdílený souborový systém Syntaxe příkazu ssh-copy-id: $ ssh-copy-id [user@]hostname Podrobnější popis: man ssh-copy-id C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -14Vytvoření autorizovaných klíčů - II Vložení veřejného klíče do seznamu autorizovaných klíčů : Podrobnější popis: man sshpřístupová práva pro soubor authorized_kyes, pro skupinu a jiné – maximálně jen právo pro čtení Získání veřejného klíče ze stroje, který bude mít roli klienta (chceme z něj spouštět příkaz ssh): [kulhanek@ui ~]$ scp wolf.ncbr.muni.cz:.ssh/id_rsa.pub wolf.pub Zapsání veřejného klíče do seznamu autorizovaných klíčů: [kulhanek@ui ~]$ cat wolf.pub >> .ssh/authorized_keys [kulhanek@ui ~]$ rm wolf.pub [kulhanek@ui ~]$ ls –l .ssh -rw-r--r-- 1 kulhanek lcc 395 Sep 25 2012 authorized_keys -rw------- 1 kulhanek lcc 1675 Mar 21 2012 id_rsa -rw-r--r-- 1 kulhanek lcc 395 Mar 21 2012 id_rsa.pub -rw------- 1 kulhanek lcc 13380 Sep 4 15:55 known_hosts dvojtečka tečka nesdílený souborový systém C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -15Pro a proti Výhody: ➢ nemusí se neustále zadávat heslo ➢ bezpečnější použití příkazů ssh a scp ve skriptech ➢ urychlení práce Nevýhody: ➢ v případě kompromitace jednoho počítače, jsou kompromitovány všechny počítače se vzájemně autorizovanými veřejnými klíči SSH klíče zásadně nepoužívejte pro přihlašování do MetaCentra nebo na klastech NCBR či CEITEC MU. Nevytvoří se během něj kerberovské lístky, bez kterých je prostředí těchto klastrů nepoužitelné!!! C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -16Cvičení M1.C1 1. Nastavte vaši instanci virtuálního stroje s Ubuntu tak, abyste se do něj mohli přihlásit pomocí ssh klíčů z hostitelského stroje (použijte návod pro nesdílený souborový systém). 2. Můžete se do virtuálního stroje přihlásit bez hesla ze stroje wolf01? Chování vysvětlete. 3. Zrušte autentizaci pomocí veřejného klíče ve vaší instanci virtuálního stroje s Ubuntu.