Prihlásenie na SSH s občianskym preukazom

10.02 | 12:27 | Martin Matuška | Martin Matuška

Naše občianske preukazy majú uložené RSA kľúče, ktoré pomocou technológie PKCS11 používame na prihlasovanie do portálov verejnej správy a na podpisovanie digitálnych dokumentov. Čo možno každý nevie, tieto sa dajú jednoducho použiť aj na prihlásenie cez SSH.

Čo k tomu potrebujeme: Aplikáciu pre eID si môžeme stiahnuť zo stránky www.slovensko.sk pre operačné systémy Windows, Mac OS a aktuálne aj pre Linuxové distribúcie Debian, Mint a Ubuntu.
Na linuxových distribúciách Debian, Mint a Ubuntu sa nainštalovaný balík volá eac-mw-klient:
$ dpkg -s eac-mw-klient
Package: eac-mw-klient
Status: install ok installed
Priority: extra
Section: x11
Installed-Size: 93576
Maintainer: Ministerstvo vnútra Slovenskej republiky
Architecture: amd64
Source: eac-mw-klient
Version: 3.7.0
Replaces: eidklient
Depends: libc6 (>= 2.11), libpcsclite1, pcscd, xterm
Conflicts: eidklient
Description: Aplikácia pre eID
Tento balík nainštaluje PKCS11 knižnicu, ktorú potrebujeme na prihlasovanie pomocou SSH. Jej štandardné umiestnenie je /usr/lib/eac_mw_klient/libpkcs11_x64.so.
$ dpkg -L eac-mw-klient | grep pkcs11
/usr/lib/eac_mw_klient/libpkcs11_x64.so
Na operačnom systéme Mac OS má tento súbor nasledovné umiestnenie:
/Applications/Aplikacia_pre_eID.app/Contents/pkcs11/libPkcs11.dylib
Na prihlásenie pomocou SSH musíme najprv extrahovať (verejné) certifikáty z občianskeho preukazu. Na toto je potrebné mať zapnutý program "Aplikácia pre eID", ktorý používa grafické rozhranie Qt (KDE). Potrebné knižnicé sú ale pribalené k balíku eac-mw-klient, takže má tento balík iba minimálne závislosti a je použiteľný aj na novších verziách vyššie uvedených linuxových distribúcií.

Zároveň potrebujeme aj občiansky preukaz vložený do čítačky a rozpoznaný aplikáciou pre eID.
Kľúče vo formáte ako sa používajú v súbore authorized_keys extrahujeme nasledovným príkazom:

Linux:
ssh-keygen -D /usr/lib/eac_mw_klient/libpkcs11_x64.so > authorized_keys
Mac OS:
ssh-keygen -D /Applications/Aplikacia_pre_eID.app/Contents/pkcs11/libPkcs11.dylib > authorized_keys

Aplikácia pre eID si od nás vypýta BOK (bezpečnostný osobný kód) a po jeho úspešnom zadaní sa do súboru authorized_keys sa zapíšu tri verejné kľúče z občianskeho preukazu.

Žiaľ tieto kľúče nemajú označenie, takže je potrebné z nich identifikovať ten "pravý", pri ktorom stačí na prihlásenie do SSH zadanie BOK. Ak dáte do súbora authorized_keys všetky tri, tak bude prihlásenie vyžadovať aj elektronický podpis pomocou KEP PIN. Postupným vložením jednotlivých kľúčov samostatne a následným pokusom o prihlásenie sa dá ale ten správny kľúč nájsť.

Súbor authorized_keys (alebo iba jednotlivé kľúče z neho) je potrebné premiestniť do konfigurácie cieľového účtu, na ktorý sa chceme prihlásiť. Táto je väčšinou v domovskom priečinku vzdialeného používateľa ~/.ssh/authorized_keys.

Na konkrétne prihlásenie pomocou občianskeho preukazu potom použijeme príkaz:

Linux:
ssh -I /usr/lib/eac_mw_klient/libpkcs11_x64.so remoteuser@remotehost
Mac OS:
ssh -I /Applications/Aplikacia_pre_eID.app/Contents/pkcs11/libPkcs11.dylib remoteuser@remotehost
kde remoteuser je meno vzdialeného používateľa a remotehost je DNS názov alebo IP adresa vzdialeného servera.

Ak chceme túto formu prihlásenia použiť pre určité vzdialené servery permanentne, môžeme v lokálnej konfigurácii pre SSH klienta ~/.ssh/config urobiť pre tieto servery nastavenie:

Linux:
Host remotehost
        User remoteuser
        PKCS11Provider /usr/lib/eac_mw_klient/libpkcs11_x64.so
Mac OS:
Host remotehost
        User remoteuser
        PKCS11Provider /Applications/Aplikacia_pre_eID.app/Contents/pkcs11/libPkcs11.dylib
    • RE: Prihlásenie na SSH s občianskym preukazom 10.02 | 12:47
      Avatar Miroslav Bendík Gentoo  Administrátor

      Cool, táto možnosť ma ani nenapadla ;)

    • RE: Prihlásenie na SSH s občianskym preukazom 10.02 | 14:23
      Avatar Richard Antix  Používateľ

      Paráda.

      Tiež to musím vyskúšať.

      Super príspevok.

    • RE: Prihlásenie na SSH s občianskym preukazom 04.03 | 15:11
      Avatar lime Debian, Red Hat, Fedora Core 3  Používateľ

      Super clanok, este by si mohol doplnit, druh citacky podporovany GNU Linuxom.

      Prejdite z modrej obrazovky k linuxu :))