Skoči na vsebino

Prijava s ključem SSH

Povezava na prijavno vozlišče z odjemalcem, ki podpira portokol SSH (angl. Secure SHell), je varna. Šele potem, ko se vzpostavi varna povezava med prijavnim vozliščem in osebnim računalnikom, osebni računalnik na prijavno 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 prijavno 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 prijavno vozlišče.

Opozorilo

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

Ko prijavno 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. Prijavno 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 prijavnemu 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 -b 4096 -C <komentar>

Z -b 4096 zahtevamo generiranje 4096-bitnega ključa, 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. Po privzetih nastavitvah bomo ustvarili ključ SSH s šifrirnim algoritmom RSA. Ob vprašanjih o datoteki, v katero shranimo ključ, in geslu, s katerim bo zakodiran zasebni del ključa, pritisnemo vnosnico (tipko Enter).

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:500u+TSqIvo8E50rdvWPgIZOWMZkd7AYMg13soVIwV8 vm-ubuntu
The key's randomart image is:
+---[RSA 3072]----+
| o*=+.+          |
|  o+oBEo         |
|   .=.o .        |
|   +.. .         |
|    +. .S . .    |
|   +..o..o =     |
|  . o.oo..+ =    |
|   +*.+  ..* .   |
|  .++* ...o.o    |
+----[SHA256]-----+

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

Opozorilo

Vsakič, ko pokličemo zgornji ukaz, se nam zgenerira drugačen 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_rsa.pub).

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

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

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQChchJqb1erbiP/z2cxpxfVKABw+pA2B6djMKvBSrl1upbfXxvKTXsX8zJ1mO6zX
dwqj8zwrCr//zIynyqxJWOtSBMM3aIsI2wzc9aPfyHZxFf48+zS+WwLduick5NHlqemtrfPYBWLEKyXIkKzQFhEBq9gG3gJxw17uS
dT6zUMfYytzvV3b54tJp1ZvLHbV7oMd2wSVZkW0AUtVqFDpFurUzWxEamABaGf9mcNbDAhJ8I2pxp4t3pVPiyAvrs8pUJdWKeeTgs
27CUQlzsWwGe2xjwyl7lpUOEze8dWJbczgpWkTyXCMtdbpuyc3st5LwcW3zo+62UyXD3oncf13E/SGqbjCxpiSLD0jB56mLmBl7v3
b0f5D62gwIxSV6Cwy/WAs2n91wRENCEl5Lhn2L1hjpa3bB4nlgsrQOYXpPJgdWlZC9PlcEHrXedfUJ+QSLp3+lJnGGyrM+VCtWE7x
6dczBpADt7AGPTwNCoYrd5MnBTDifv+pNRFB5oshrs0Tjk= 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 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 prijavno vozlišče prijavili z odjemalcem SSH, bo prijavno 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. Na prijavni strani

Prijava v sistem FIDO

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 <ime>@nsc-login.ijs.si
Last login: Sat Jan 16 21:33:38 2021 from 93.103.18.69
ssh <ime>@nsc-login.ijs.si

Namig

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