Kompania Cloudflare prezantoi mjetin opkssh (OpenPubkey SSH), i cili lejon integrimin e mjeteve për autentifikimin e centralizuar në OpenSSH me mundësinë e qasjes përmes ofruesve OpenID Connect. Me ndihmën e opkssh, mund të eliminohet puna manuale në menaxhimin dhe konfigurimin e çelësave SSH, si dhe të organizohet lidhja me serverin nga ndonjë host, pa pasur nevojë për krijimin e çelësave privatë në çdo kompjuter klient dhe pa kopjimin manual të çelësave të hapur në server. Për t'u lidhur, mjafton të kryhet lidhja me llogarinë tek ofruesi OpenID në server.
Opkssh është e përshtatshme me ofruesit OpenID të Google, Microsoft/Azure dhe Gitlab, gjë që lejon konfigurimin e qasjes përmes llogarive ekzistuese në shërbimet gmail.com, microsoft.com dhe gitlab.com. Kur përdoret opkssh, përveç çelësave SSH pa limit në kohë, gjenerohen çelësa të përkohshëm, të cilët janë të vlefshëm për disa orë dhe formohen në bazë të konfirmimit nga ofruesi OpenID. Shkarkimi i këtyre çelësave pas skadimit të afatit nuk paraqet kërcënim për sigurinë. Si parazgjedhje, kohëzgjatja e vlefshmërisë së çelësit është 24 orë, pas së cilës është e nevojshme të identifikohesh përsëri përmes OpenID.
Integrimi me OpenSSH bazohet në mundësinë e krijimit të zgjerimeve të protokollit SSH, që lejojnë bashkimin e të dhënave të rastit në certifikatat SSH. Pas kalimit të autentifikimit përmes OpenID, klienti krijon një çelës të hapur, i cili përmban një PK-token, që konfirmon përkatësinë e çelësit me përdoruesin e deklaruar. Tokeni integrihet në protokollin SSH përmes një fushe me të dhëna shtesë të certifikatës SSH. Krijimi dhe verifikimi i PK-tokenëve në anën e serverit bëhet duke përdorur protokollin kriptografik OpenPubKey.
OpenPubKey lejon gjenerimin e një çelësi të hapur dhe lidhjen e tij me një token, që i është dhënë ofruesit OpenID. Përmes nënshkrimit digjital, ofruesi konfirmon se ky çelës është krijuar nga përdoruesi i autentikuar të cilin e ka deklaruar. Për shembull, ofruesi OpenID Google mund të konfirmojë se përdoruesi është autentikuar si test@gmail.com. Në anën e serverit, kryhet verifikimi nëse tokeni i bashkangjitur është i nënshkruar nga ofruesi OpenID dhe nëse nënshkrimi digjital përputhet me çelësin e hapur të deklaruar, dmth. serveri mund të konfirmojë se në të vërtetë përdoruesi test@gmail.com ka krijuar çelësin e hapur për klientin SSH që është lidhur.

Integrimi me OpenSSH është organizuar përmes specifikimit të programit opkssh në skedarin e konfigurimit «sshd_config» përmes direktivës «AuthorizedKeysCommand» (për shembull: «AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t»). Konfigurimi i lidhjes së llogarive me OpenID realizohet në anën e serverit SSH. Në anën e klientit SSH nuk kërkohet ndryshim në konfigurim, por para se të hyhet, duhet të ekzekutohet komanda «opkssh login» dhe në dritaren që shfaqet në shfletuesin, të përzgjidhet ofruesi OpenID dhe të kryhet autentifikimi përmes tij.
Utilita opkssh do tĂ« gjenerojĂ« çelĂ«sa SSH dhe do tĂ« marrĂ« njĂ« PK-token, qĂ« konfirmon se pĂ«rdoruesi ka kaluar autentifikimin dhe qĂ« lejon verifikimin se çelĂ«sat e krijuar i pĂ«rkasin pĂ«rdoruesit tĂ« deklaruar. ĂelĂ«si i hapur SSH, i cili Ă«shtĂ« bashkangjitur me PK-token pĂ«rmes fushĂ«s me tĂ« dhĂ«na shtesĂ«, do tĂ« regjistrohet nĂ« skedarin ~/.ssh/id_ecdsas dhe do tĂ« fillojĂ« tĂ« transmitohet gjatĂ« lidhjes me server utilitĂ«n ssh.
Lidhja me serverin bëhet duke përdorur skemën standarde për SSH «ssh login@server», ndërsa serveri login-i duhet të jetë identifikuar paraprakisht me llogarinë në OpenID që përdor përdoruesi. Kështu, funksionimi përfundon 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 si përdorues «root» me autentifikim OpenID përmes 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 përmes komandës «ssh root@host_server».
Lidhja e llogarisë mund të realizohet gjithashtu manualisht përmes skedarit të konfigurimit /etc/opk/auth_id (ose ~/.opk/auth_id), ku për shembullin e mësipërm do të shkruhet rreshti «root test@gmail.com https://accounts.google.com». Përveç kësaj, përmes skedarit /etc/opk/providers, mund të definohet lista e ofruesve të lejueshëm OpenID, parametrat e tyre dhe lista e identifikuesve të klientëve të lejuar.

Burimi: opennet.ru
