Obsah

SSH - možnosti ověření uživatele

Následující možnosti ověření uživatele platí pro služby založené na SSH - tj. SSH, SCP, SFTP, rsync a SSHFS.

Ověření heslem

Nejjednodušší varianta, není třeba nic nastavovat, nutný je pouze účet v systému datových úložišť. Nevýhoda: při každém přístupu je vyžadováno heslo.

Ověření systémem Kerberos

Pro použití této varianty je potřeba:

    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials yes
$ kinit user@EINFRA
Password for user@EINFRA:
Pokud Vám byl vytvořen servisní účet, použijte stejný realm EINFRA.

Přístup ke službám je pak možný bez hesla po dobu platnosti lístku:

$ ssh user@server ls -l
total 12540
-rw-r--r-- 1 user storage 10485760 Jun 22 14:16 MB10.dat
-rw-r--r-- 1 user storage  8388608 May  3 12:51 MB8.dat
drwxr-xr-x 2 user storage       10 Jun 13 15:34 backup
$ 

Platnost lístku je možné ověřit:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: user@EINFRA

Valid starting     Expires            Service principal
07/04/12 13:26:22  07/05/12 13:26:19  krbtgt/EINFRA@EINFRA

V případě potřeby je možné lístek i odstranit:

$ kdestroy
$ klist 
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)

Ověření SSH klíčem

Pro použití SSH klíče je nezbytné nejříve SSH klíč přidat na úložiště prostřednictvím systému Perun.

Po nainstalování veřejné části RSA resp. DSA klíče do souboru ~/.ssh/authorized_keys, což provede systém Perun, je možný přístup bez hesla, s použitím soukromé části klíče jako identity.
Soukromou část klíče je velmi vhodné uchovávat zašifrovanou - chráněnou dostatečně silným heslem (tj. ne „tajneheslo“ z příkladu níže ;) ). Aby toto heslo nemuselo být opět zadáváno při každém přístupu, je možné ke klíči přistupovat nástrojem ssh-agent, který heslo vyžaduje pouze jednou a pak už umožňuje přístup ke klíči bez zadávání hesla.

Příklad postupu pro vygenerování RSA páru soukromý/veřejný klíč, pokud žádný nemáte:
(místo xx budou hexadecimální čísla)

$ ssh-keygen -t rsa -b 2048
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): tajneheslo
Enter same passphrase again: tajneheslo
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:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@client-host
Nyní přidejte SSH klíč do systému Perun, podle tohoto návodu. Provedené změny se projeví do 60 minut.

V tuto chvíli už by nemělo být při SSH spojení vyžadováno heslo účtu v uložišti, ale pouze heslo pro dešifrování SSH klíče (passphrase):

$ ssh user@sserver ls -l
Enter passphrase for key '.ssh/id_rsa': tajneheslo
total 12540
-rw-r--r-- 1 user storage 10485760 Jun 22 14:16 MB10.dat
-rw-r--r-- 1 user storage  8388608 May  3 12:51 MB8.dat
drwxr-xr-x 2 user storage       10 Jun 13 15:34 backup
$ 

Pokud klíč nainstalujeme do běžícího procesu ssh-agent:

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/user/.ssh/id_rsa: tajneheslo
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)

tak již není vyžadováno žádné heslo:

$ ssh user@sserver ls -l
total 12540
-rw-r--r-- 1 user storage 10485760 Jun 22 14:16 MB10.dat
-rw-r--r-- 1 user storage  8388608 May  3 12:51 MB8.dat
drwxr-xr-x 2 user storage       10 Jun 13 15:34 backup
$ 

Klíč můžeme z procesu ssh-agent v případě potřeby odebrat:

$ ssh-add -D
All identities removed.

Proces ssh-agent musí být během použití již spuštěný (v Linuxu ale často bývá spuštěn už při startu X-windows), případně ho můžeme spustit:

$ eval ``ssh-agent``

Více o nástroji ssh-agent: