Spoločnosť Cloudflare vydala opkssh na autentifikáciu do SSH cez OpenID Connect.

Spoločnosť Cloudflare predstavila nástroj opkssh (OpenPubkey SSH), ktorý umožňuje integrovať do OpenSSH prostriedky centralizovanej autentifikácie s možnosťou prihlásenia prostredníctvom poskytovateľov OpenID Connect. Pomocou opkssh sa môžete zbaviť manuálnej práce pri správe a nastavení SSH kľúčov a zabezpečiť pripojenie k serveru z akýchkoľvek hostiteľov, bez potreby vytvárať súkromné kľúče na každom klientskom počítači a bez manuálneho kopírovania verejných kľúčov na server. Pre pripojenie stačí vykonať na serveri prepojenie na účet u poskytovateľa OpenID. Kód nástroja je napísaný v jazyku Go a je šírený pod licenciou Apache 2.0.

Opkssh je kompatibilný s OpenID poskytovateľmi Google, Microsoft/Azure a Gitlab, čo umožňuje nastaviť prihlásenie prostredníctvom existujúcich účtov v službách gmail.com, microsoft.com a gitlab.com. Pri použití opkssh namiesto neobmedzených časových SSH kľúčov sa generujú dočasné kľúče, ktoré sú platné niekoľko hodín a sú vytvárané na základe potvrdenia od poskytovateľa OpenID. Únik takýchto kľúčov po uplynutí ich platnosti nezaprisahuje bezpečnostné riziko. Predvolene je čas platnosti kľúča 24 hodín, po ktorých je potrebné sa znovu identifikovať cez OpenID.

Integrácia s OpenSSH je založená na možnosti vytvárať rozšírenia protokolu SSH, ktoré umožňujú pripojiť ľubovoľné údaje k SSH certifikátom. Po vykonaní autentifikácie cez OpenID klient vytvorí verejný kľúč, ktorý obsahuje PK-token potvrdzujúci priradenie kľúča vyhlásenému používateľovi. Token je integrovaný do protokolu SSH prostredníctvom poľa s dodatočnými údajmi SSH certifikátu. Vytváranie PK-tokenov a ich overovanie na strane servera sa vykonáva s použitím kryptografického protokolu OpenPubKey.

OpenPubKey umožňuje generovať verejný kľúč a priradiť ho k tokenu vydanému poskytovateľom OpenID. Pomocou digitálneho podpisu poskytovateľ potvrdzuje, že tento kľúč bol vytvorený oznámeným autentifikovaným používateľom. Napríklad, poskytovateľ OpenID Google môže potvrdiť, že používateľ je autentifikovaný ako test@gmail.com. Na strane servera sa kontroluje, či je priložený token podpísaný poskytovateľom OpenID a či digitálny podpis zodpovedá oznámenému verejnému kľúču, t. j. server sa môže uistiť, že verejný kľúč vytvoril práve používateľ test@gmail.com pre pripojeného SSH klienta.

Spoločnosť Cloudflare vydala opkssh na autentifikáciu do SSH cez OpenID Connect.

Integrácia s OpenSSH je zorganizovaná prostredníctvom uvedenia programu opkssh v konfiguračnom súbore „sshd_config“ cez direktívu „AuthorizedKeysCommand“ (napríklad: „AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t“). Nastavenie prepojenia účtov s OpenID sa vykonáva na strane SSH servera. Na strane SSH klienta nie sú potrebné žiadne zmeny nastavení, ale pred prihlásením je potrebné spustiť príkaz „opkssh login“ a v zobrazenom okne prehliadača si vybrať poskytovateľa OpenID a prostredníctvom neho vykonať autentifikáciu.

Nástroj opkssh vygeneruje SSH kľúče a získa PK-token, ktorý potvrdzuje, že používateľ prešiel autentifikáciou a umožňuje overiť, že vytvorené kľúče patria oznámenému používateľovi. Verejný kľúč SSH, ku ktorému je cez pole s ďalšími údajmi pripojený PK-token, bude zapísaný do súboru ~/ .ssh/id_ecdsas a začne sa prenášať pri pripojení k serveru nástroju ssh.

Pripojenie k serveru sa vykonáva pomocou štandardného schémy pre SSH „ssh login@server“, pričom serveri login musí byť predtým identifikovaný s účtom v OpenID, ktorý používateľ využíva. Takto sa práca znižuje na to, že ssh klient odosiela na ssh server verejný kľúč, a server spúšťa príkaz „opkssh verify“ na overenie kľúča.

Na priradenie účtu k OpenID administrátor servera vykonáva príkaz „opkssh add“. Napríklad, aby povolil prístup na server pod používateľom „root“ s autentifikáciou cez OpenID prostredníctvom účtu test@gmail.com v Gmaile, je potrebné vykonať „sudo opkssh add root test@gmail.com google“, po čom sa klient môže pripojiť s parametrami tohto účtu príkazom „ssh root@host_servera“.

Prepojenie účtu je možné vykonať aj manuálne cez konfiguračný súbor /etc/opk/auth_id (alebo ~/ .opk/auth_id), do ktorého sa v prípade vyššie uvedeného príkladu zapíše reťazec „root test@gmail.com https://accounts.google.com“. Navyše môžete cez súbor /etc/opk/providers definovať zoznam povolených poskytovateľov OpenID, ich parametre a zoznam povolených identifikátorov klientov.

Spoločnosť Cloudflare vydala opkssh na autentifikáciu do SSH cez OpenID Connect.


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster