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 5 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 -8- Situace ➢Nesdílený domovský adresář ➢Sdílený domovský adresář C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -9Nesdílený souborový systém #1#1 #1 autorizované klíče ssh ssh klíče Situace, kdy stroje nemají sdílený domovský adresář: stroj #1 stroj #2 kopie veřejného klíče pomocí scp a jeho vložení do autorizovaných klíčů (pouze jednou) vyžaduje heslo C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -10Nesdílený souborový systém #1#1 #1 autorizované klíče ssh ssh klíče Situace, kdy stroje nemají sdílený domovský adresář: stroj #1 stroj #2 kopie veřejného klíče pomocí scp a jeho vložení do autorizovaných klíčů (pouze jednou) #2 #2#2 autorizované klíče klíče C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -11Sdí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 C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -12- Postupy A. Nesdílený souborový systém autorizované klíče sshklíče wolfXX ui (virtuální stroj) 1. vytvoření v/s klíče 2. vložení veřejného klíče do autorizovaných klíčů 1 2 ssh-keygen C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -13- 1. Vytvoření páru v/s klíč [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: SHA256:1uK4myaL8a/KjXv6pmPyEdQk7TIxzS7dqGFxY4jCHfs kulhanek@wolf01 [kulhanek@wolf01 .ssh]$ ls -l total 12 -rw------- 1 kulhanek ncbr 2602 Jan 25 16:12 id_rsa -rw-r----- 1 kulhanek ncbr 569 Jan 25 16:12 id_rsa.pub -rw------- 1 kulhanek ncbr 2474 Jan 25 14:39 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 -14- 2. Vytvoření autorizovaných klíčů 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 -15- 2. Vytvoření autorizovaných klíčů $ 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 -16Vytvoření autorizovaných klíčů 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------- 1 kulhanek kulhanek 566 Jan 25 09:13 authorized_keys -rw-r--r-- 1 kulhanek kulhanek 222 Jan 25 09:10 known_hosts dvojtečka tečka nesdílený souborový systém seznam otisků palců strojů, na které jste se přihlásili pomocí příkazu ssh C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -17- Postupy B. Sdílený souborový systém autorizované klíče ui (virtuální stroj) ssh 1. vytvoření v/s klíče 2. vložení veřejného klíče do autorizovaných klíčů 1ssh-keygen 2 C2115 Praktický úvod do superpočítání 5. lekce / Modul 1 -18- 1. Vytvoření páru v/s klíč [kulhanek@ui ~]$ cd .ssh [kulhanek@ui .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: SHA256:fSh/KYIa6y9+rhuba8sGYMp4noC/fNbVbgMzjFz3L2A kulhanek@ui [kulhanek@ui .ssh]$ ls -l -rw------- 1 kulhanek kulhanek 566 Jan 25 09:13 authorized_keys -rw------- 1 kulhanek kulhanek 2602 Jan 25 15:45 id_rsa -rw-r--r-- 1 kulhanek kulhanek 566 Jan 25 15:45 id_rsa.pub -rw-r--r-- 1 kulhanek kulhanek 222 Jan 25 09:10 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 -19- 2. Vytvoření autorizovaných klíčů Vložení veřejného klíče do seznamu autorizovaných klíčů: [kulhanek@ui ~]$ cd .ssh [kulhanek@ui .ssh]$ cat id_rsa.pub >> authorized_keys [kulhanek@ui .ssh]$ ls –l -rw------- 1 kulhanek kulhanek 1132 Jan 25 15:48 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 -20Pro 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 -21Cvič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. Na virtuálním stroji si vyzkoušejte nastavení autorizovaných klíčů pro sdílený souborový systém.