Mae Cloudflare wedi cyflwyno pecyn cymorth opkssh (OpenPubkey SSH), sy'n caniatΓ‘u integreiddio offer dilysu canolog i OpenSSH gyda'r gallu i fewngofnodi trwy ddarparwyr OpenID Connect. Gydag opkssh gallwch chi ddileu'r gwaith llaw o reoli a ffurfweddu allweddi SSH, a hefyd drefnu cysylltiad Γ’'r gweinydd gan unrhyw westeiwr, heb yr angen i greu allweddi preifat ar bob cyfrifiadur cleient a heb gopΓ―o allweddi cyhoeddus i'r gweinydd Γ’ llaw. I gysylltu, cysylltwch Γ’'ch cyfrif gyda'r darparwr OpenID ar y gweinydd. Mae cod y pecyn cymorth wedi'i ysgrifennu yn Go ac fe'i dosberthir o dan drwydded Apache 2.0.
Mae Opkssh yn gydnaws Γ’ darparwyr Google, Microsoft/Azure a Gitlab OpenID, sy'n eich galluogi i sefydlu mewngofnodi gan ddefnyddio'ch cyfrifon gmail.com, microsoft.com a gitlab.com presennol. Wrth ddefnyddio opkssh, yn lle bysellau SSH Γ’ therfyn amser, cynhyrchir allweddi dros dro sy'n ddilys am ychydig oriau ac sy'n seiliedig ar gadarnhad gan y darparwr OpenID. Nid yw gollwng allweddi o'r fath ar Γ΄l dod i ben yn fygythiad diogelwch. Yn ddiofyn, mae'r allwedd yn ddilys am 24 awr, ac ar Γ΄l hynny mae'n rhaid i chi ail-adnabod eich hun trwy OpenID.
Mae integreiddio ag OpenSSH yn seiliedig ar y gallu i greu estyniadau protocol SSH sy'n caniatΓ‘u i ddata mympwyol gael ei atodi i dystysgrifau SSH. Ar Γ΄l dilysu trwy OpenID, mae'r cleient yn cynhyrchu allwedd gyhoeddus sy'n cynnwys tocyn PK yn cadarnhau bod yr allwedd yn perthyn i'r defnyddiwr datganedig. Mae'r tocyn wedi'i integreiddio i'r protocol SSH trwy faes data ychwanegol y dystysgrif SSH. Mae creu tocynnau PK a'u dilysu ar ochr y gweinydd yn cael ei wneud gan ddefnyddio protocol cryptograffig OpenPubKey.
Mae OpenPubKey yn caniatΓ‘u ichi gynhyrchu allwedd gyhoeddus a'i rhwymo i docyn a gyhoeddwyd gan ddarparwr OpenID. Drwy'r llofnod digidol, mae'r darparwr yn cadarnhau bod yr allwedd hon wedi'i chreu gan y defnyddiwr dilys datganedig. Er enghraifft, gallai darparwr OpenID Google wirio bod defnyddiwr wedi'i ddilysu fel test@gmail.com. Ar yr ochr ogleddol, cynhelir gwiriad i weld a yw'r tocyn ynghlwm wedi'i lofnodi gan y darparwr OpenID ac a yw'r llofnod digidol yn cyfateb i'r allwedd gyhoeddus a ddatganwyd, h.y. gall y gweinydd wirio mai'r defnyddiwr test@gmail.com a greodd yr allwedd gyhoeddus ar gyfer y cleient SSH cysylltiedig.

Trefnir integreiddio ag OpenSSH trwy nodi'r rhaglen opkssh yn y ffeil ffurfweddu "sshd_config" trwy'r gyfarwyddeb "AuthorizedKeysCommand" (er enghraifft: "AuthorizedKeysCommand /usr/local/bin/opkssh % u %k % t"). Mae sefydlu cyfrif sy'n cysylltu ag OpenID yn cael ei wneud ar ochr y gweinydd SSH. Ar ochr cleient SSH, nid oes angen newid gosodiadau, ond cyn mewngofnodi, mae angen i chi redeg y gorchymyn βopkssh loginβ ac yn y ffenestr porwr sy'n ymddangos, dewiswch y darparwr OpenID a dilyswch drwyddo.
Bydd y cyfleustodau opkssh yn cynhyrchu allweddi SSH ac yn cael tocyn PK, sy'n cadarnhau bod y defnyddiwr wedi'i ddilysu ac yn caniatΓ‘u gwirio bod yr allweddi a gynhyrchwyd yn perthyn i'r defnyddiwr a nodwyd. Bydd yr allwedd SSH gyhoeddus, gyda'r tocyn PK ynghlwm trwy'r maes data ychwanegol, yn cael ei hysgrifennu i'r ffeil ~/.ssh/id_ecdsas a bydd yn dechrau trosglwyddo wrth gysylltu Γ’ gweinydd cyfleustodau ssh.
Gwneir cysylltiad Γ’'r gweinydd gan ddefnyddio'r cynllun SSH safonol "ssh login@server", tra ymlaen gweinydd Rhaid i'r mewngofnod gael ei adnabod yn gyntaf gyda chyfrif OpenID y defnyddiwr. Felly, mae'r broses yn berwi i lawr i'r cleient SSH yn anfon yr allwedd gyhoeddus i'r gweinydd SSH, a'r gweinydd yn rhedeg y gorchymyn "opkssh verify" i wirio'r allwedd.
I gysylltu cyfrif ag OpenID, mae gweinyddwr y gweinydd yn gweithredu'r gorchymyn "opkssh add". Er enghraifft, i ganiatΓ‘u mewngofnodi i'r gweinydd o dan y defnyddiwr "root" gyda dilysiad OpenID trwy'r cyfrif test@gmail.com yn Gmail, dylech redeg "sudo opkssh add root test@gmail.com google", ac ar Γ΄l hynny bydd y cleient yn gallu cysylltu o dan baramedrau'r cyfrif hwn gan ddefnyddio'r gorchymyn "ssh root@host_server".
Gellir rhwymo cyfrifon Γ’ llaw hefyd drwy'r ffeil ffurfweddu /etc/opk/auth_id (neu ~/.opk/auth_id), a fyddai, ar gyfer yr enghraifft uchod, yn cynnwys y llinell "root test@gmail.com https://accounts.google.com". Yn ogystal, gellir defnyddio'r ffeil /etc/opk/providers i ddiffinio rhestr o ddarparwyr OpenID a ganiateir, eu paramedrau, a rhestr o ddynodwyr cleientiaid a ganiateir.

Ffynhonnell: opennet.ru
