Skoči na vsebino

Prijava s ključem SSH

Povezava na vstopno vozlišče z odjemalcem, ki podpira portokol SSH (angl. Secure SHell), je varna. Šele potem, ko se vzpostavi varna povezava med vstopnim vozliščem in osebnim računalnikom, osebni računalnik na vstopno vozlišče pošlje naše uporabniško ime in geslo. Največja šibka točka varne povezave je tako uporabniško geslo; če je preveč enostavno, lahko nepooblaščeni ugane geslo in vdre v sistem.

Zato skrbniki računalniških gruč raje vidijo, da za prijavo na vstopno vozlišče uporabljamo ključ SSH. Ključ SSH je sestavljen iz zasebnega in javnega dela. Za prijavo s ključem SSH, moramo javni del ključa SSH namestiti na vstopno vozlišče.

Opozorilo

Zasebni del ključa SSH ne delimo z nikomer, javni del ključa lahko delimo z drugimi.

Ko vstopno vozlišče pozna javni del našega ključa SSH, nas ne bo več vprašalo za geslo. Namesto tega bo osebnemu računalniku postavilo preprost izziv. Vstopno vozlišče bo z javnim delom ključa SSH zašifriralo naključno število in šifro poslalo osebnemu računalniku, ki bo s privatnim delom ključa SSH šifro dešifriral in jo vrnil vstopnemu vozlišču. Če bo vrnjeno število enako, bo povezava vzpostavljena, drugače ne.

Namig

Bolj poglobljeno razlago šifriranja SSH najdete na povezavi.

Izdelava ključa SSH

Odpremo ukazno vrstico in vpišemo:

ssh-keygen -t ed25519 -C <oznaka>

Z -t ed25519 zahtevamo generiranje ključa s pomočjo EdDSA podpisne sheme, z -C <oznaka> pa ključ za lažjo identifikacijo dopolnimo s poljubno oznako, na primer z imenom osebnega računalnika, za katerega želimo ustvariti ključ SSH. Ob vprašanjih o datoteki, v katero shranimo ključ, in geslu, s katerim bo zakodiran zasebni del ključa, pritisnemo ↵ Enter.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xBjPXkGfSixhG4IBI7G/zfjClHcZMR2/a5OvGBEBV9s vm-ubuntu
The key's randomart image is:
+--[ED25519 256]--+
|o.o..o+oB++      |
| o .. oX.B = .   |
|.     .oO * E    |
| .    .o = o     |
|  ..   oS o      |
|  o=. o  . o     |
| oo.o.  . =      |
|  o.     + o     |
|   ..   . ...    |
+----[SHA256]-----+

Ustvarili smo ključ SSH, šifriran z algoritom EdDSA, ki je shranjen v dveh datotekah: zasebni del v datoteki id_ed25519, in javni del v datoteki id_ed25519.pub. Zasebnega dela ključa ne delimo z nikomer, javni del ključa bomo posredovali na vstopno vozlišče.

Opozorilo

Vsakič, ko izvedemo zgornji ukaz, se nam zgenerira nov ključ!

Javni del ključa SSH lahko na operacijskih sistemih Linux in macOS izpišemo z ukazom cat, na operacijskem systemu Windows pa z ukazom type. Za ukazom napišemo polno ime datoteke z javnim ključem, ki nam ga je izpisal prejšnji ukaz v vrstici (Your public key has been saved in /home/user/.ssh/id_ed25519.pub).

$ cat /home/user/.ssh/id_ed25519.pub
cat /home/user/.ssh/id_ed25519.pub

Na zaslonu se izpiše javni del ključa SSH

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFh0NIbjPmhcAhqMExbcVpshrPFIlj0QHfpp2/lUh1z1 vm-ubuntu

Če nam je ljubše, lahko datoteko odpremo v izbranem urejevalniku besedil.

Objava javnega dela ključa SSH

Računalniške gruče Arnes, Vega, NSC, Maister in Trdina za distribucijo javnega dela ključa SSH uporabljajo sistem FIDO (angl. Fast IDentity Online). Za prijavo na vse tri sisteme tako ključ objavimo samo na enem mestu. Ko se bomo na vstopno vozlišče prijavili z odjemalcem SSH, bo vstopno vozlišče v sistemu FIDO preverilo, če imamo objavljen javni del ključa in ga uporabilo za izziv. Če ključa nimamo, nas bo pozvalo k vnosu gesla.

Za objavo javnega dela ključa SSH se prijavimo na spletno stran fido.sling.si.

Prijava v sistem FIDO

Na prijavni strani v polji Username in Password vpišemo uporabniško ime in geslo za dostop do gruč (SLING SSO, angl. Single Sign-On) in stisnemo gumb Log In. Odpre se nam glavna stran z našimi podatki.

Podatki o uporabniku v sistemu FIDO

V rubriki nastavitve računa (angl. Account Settings) pri zapisu SHH public keys stisnemo gumb Add (gumb na sliki je obkrožen in označen s številko 1). V okno, ki se nam odpre prenesemo javni del našega ključa SSH. Najlažje tako, da ga iz ukazne vrstice (ali urejevalnika) skopiramo in prilepimo v odprto okno.

Vnos javnega ključa SSH

Stisnemo gumb Set, da se okno zapre. Nato na glavni strani z našimi podatki stisnemo še gumb Save (gumb je na sliki obkrožen in označen s številko 2). Zdaj se nam na v rubriki SSH public keys izpiše del našega ključa (podatki o ključu so na sliki obkroženi in označeni s številko 3).

Uspešen vnos ključa SSH

Zapremo spletno stran in se poskusimo prijaviti brez gesla. V ukazno vrstico vpišemo:

$ ssh sling040@hpc-login1.arnes.si
Last login: Sat Jan 16 21:33:38 2021 from 93.103.18.69
ssh sling040@hpc-login1.arnes.si

Namig

Za računalniške sisteme, ki niso vključeni v SLING SSO, sledite navodilom na povezavi.