Kompania Cloudflare publikoi opkssh për autentifikimin në SSH përmes OpenID Connect

Kompania Cloudflare prezantoi mjetin opkssh (OpenPubkey SSH), i cili lejon integrimin në OpenSSH të mjeteve të autentifikimit të centralizuar me mundësinë e hyrjes përmes ofruesve të OpenID Connect. Me opkssh, mund të shmangni punën manuale për menaxhimin dhe konfigurimin e çelësave SSH, si dhe të organizoni lidhjen me serverin nga çdo host, pa nevojën për të krijuar çelësa privatë në çdo kompjuter klient dhe pa kopjimin manual të çelësave publikë në server. Për t'u lidhur, mjafton të realizoni në server lidhjen me llogarinë te ofruesi i OpenID. Kodi i mjetit është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.

Opkssh është kompatibil me ofruesit e OpenID si Google, Microsoft/Azure dhe Gitlab, çka lejon konfigurimin e hyrjes përmes llogarive ekzistuese në shërbimet gmail.com, microsoft.com dhe gitlab.com. Kur përdoret opkssh në vend të çelësave SSH të pakufizuar, gjenerohen çelësa të përkohshëm, që janë të vlefshëm vetëm për disa orë dhe formohen mbi bazën e konfirmimit nga ofruesi i OpenID. Shpërthimi i çelësave të tillë pas skadimit të vlefshmërisë nuk paraqet rrezik për sigurinë. Në parazgjedhje, koha e vlefshmërisë së çelësit është 24 orë, pas së cilës është e nevojshme të ri-identifikoheni përmes OpenID.

Integrimi me OpenSSH bazohet në mundësinë e krijimit të zgjerimeve të protokollit SSH, të cilat lejojnë bashkëngjitjen e të dhënave të rastësishme në certifikatat SSH. Pas vijueshmërisë të autentifikimit përmes OpenID, klienti formon një çelës publik, i cili përmban një PK-token, që konfirmon përkatësinë e çelësit te përdoruesi i deklaruar. Tokeni integrohet në protokollin SSH përmes një fushe me të dhëna shtesë në certifikatën SSH. Krijimi i PK-tokenëve dhe verifikimi i tyre në anën e serverit realizohet duke përdorur protokollin kriptografik OpenPubKey.

OpenPubKey le permite të gjenerojë një çelës të hapur dhe ta lidhë atë me tokenin e lëshuar nga ofruesi i OpenID. Përdorimi i nënshkrimit digjital, ofruesi konfirmon se ky çelës është krijuar nga përdoruesi i identifikuar. Për shembull, ofruesi i OpenID Google mund të konfirmojë se përdoruesi është autentikuar si test@gmail.com. Në anënveri, kryhet verifikimi nëse tokeni e lidhur është i nënshkruar nga ofruesi i OpenID dhe nëse nënshkrimi digjital korrespondon me çelësin e hapur të deklaruar, që do të thotë se serveri mund të sigurohet se përdoruesi test@gmail.com ka krijuar çelësin e hapur për klientin SSH të lidhur.

Kompania Cloudflare publikoi opkssh për autentifikimin në SSH përmes OpenID Connect

Integrimi me OpenSSH është organizuar përmes specifikimit të programit opkssh në skedarin e konfigurimit «sshd_config» përmes direktivës «AuthorizedKeysCommand» (p.sh.: «AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t»). Konfigurimi i lidhjes së llogarive me OpenID bëhet në anën e serverit SSH. Në anën e klientit SSH nuk nevojiten ndryshime në cilësime, por para se të hyjë, duhet të ekzekutohet komanda «opkssh login» dhe në dritaren e shfletuesit që hapet, të zgjidhet ofruesi i OpenID dhe të kryhet autentikimi përmes tij.

Ulliteta opkssh do të gjenerojë çelësa SSH dhe do të marrë tokenin PK që konfirmon se përdoruesi është autentikuar dhe lejon të verifikohet se çelësat e krijuar i përkasin përdoruesit të deklaruar. Çelësi i hapur SSH, i cili është i lidhur me tokenin PK përmes fushës me të dhëna shtesë, do të shkruhet në skedarin ~/.ssh/id_ecdsas dhe do të fillojë të dërgohet kur lidhet me серверу ullitën ssh.

Lidhja me serverin bëhet duke përdorur schemën standarde për SSH «ssh login@server», duke pasur parasysh se сервере login-i duhet të identifikohet paraprakisht me llogarinë në OpenID që përdor përdoruesi. Kështu, puna përmbledh se klienti SSH dërgon çelësin publik në serverin ssh, ndërsa serveri ekzekuton komandën «opkssh verify» për të verifikuar çelësin.

Për të lidhur llogarinë me OpenID, administratori i serverit ekzekuton komandën «opkssh add». Për shembull, për të lejuar hyrjen në server me përdoruesin «root» me autentikimin OpenID nëpërmjet llogarisë test@gmail.com në Gmail, duhet të ekzekutohet «sudo opkssh add root test@gmail.com google», pas së cilës klienti do të mund të lidhet me parametrat e kësaj llogarie me komandën «ssh root@host_server».

Lidhja e llogarisë gjithashtu mund të bëhet manualisht përmes skedarit të konfigurimit /etc/opk/auth_id (ose ~/ .opk/ auth_id), në të cilin për shembullin e mësipërm do të shkruhet rreshti "root test@gmail.com https://accounts.google.com". Shtesë, përmes skedarit /etc/opk/providers mund të përcaktoni listën e ofruesve të lejuar OpenID, parametrat e tyre dhe listën e identifikuesve të klientëve të lejuar.

Kompania Cloudflare publikoi opkssh për autentifikimin në SSH përmes OpenID Connect


Burimi: opennet.ru
Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster