- Cloudflare ने OPKSSH(OpenPubkey SSH) को ओपन सोर्स के रूप में जारी किया है
- OPKSSH, OpenID Connect-आधारित SSO लॉगिन के जरिए SSH keys को अपने-आप generate और use करने देता है
- अब users को SSH public/private keys को सीधे manage करने या servers पर deploy करने की ज़रूरत नहीं है
- SSH protocol में बदलाव किए बिना भी SSH authentication में ID-आधारित approach लाई जा सकती है
SSO और OpenID Connect की पृष्ठभूमि
- SSO(Single Sign-On) एक authentication तरीका है, जिसमें user एक बार login करके कई systems तक access कर सकता है
- OpenID Connect एक protocol है जो मुख्य रूप से SSO के लिए इस्तेमाल होता है, और user information वाला ID token जारी करता है
- ID token में user email जैसी जानकारी होती है, लेकिन public key शामिल नहीं होती → इसलिए इसे SSH जैसे security protocols में सीधे इस्तेमाल नहीं किया जा सकता
OpenPubkey परिचय
- OpenPubkey, ID token में user public key शामिल करके उसे PK Token में बदल देता है
- इससे “Google यह प्रमाणित कर सकता है कि alice@example.com user public key 0x123 का उपयोग कर रहा है”
- इसे मौजूदा OpenID Connect protocol में बिना किसी बदलाव के लागू किया जा सकता है
OPKSSH की भूमिका और फायदे
- OPKSSH, OpenPubkey को SSH में इंटीग्रेट करके SSO login के जरिए one-time SSH keys generate करता है
- यह मौजूदा SSH protocol में किसी बदलाव के बिना काम करता है, और config file में सिर्फ दो लाइनें जोड़कर लागू किया जा सकता है
-
सुरक्षा में सुधार
- long-term keys की जगह one-time SSH keys का उपयोग → key leak होने पर नुकसान कम होता है और key lifetime सीमित की जा सकती है
- default रूप से 24 घंटे में expire, और setting से बदला जा सकता है
-
user convenience में सुधार
- सिर्फ
opkssh login command चलाकर SSH key generate और login किया जा सकता है
- SSH private key को कई computers पर copy करने की ज़रूरत नहीं है
-
management visibility में सुधार
- key-based access की जगह email address-आधारित access → कौन user है, इसे अधिक स्पष्ट रूप से track किया जा सकता है
bob@example.com जैसे email को access allow file में जोड़ते ही access दिया जा सकता है
OPKSSH कैसे काम करता है
- जब user
opkssh login चलाता है:
- अस्थायी SSH public/private key generate होती है
- browser के जरिए OpenID Provider(Google आदि) में login किया जाता है
- सफल होने पर OpenPubkey protocol के जरिए public key और user identity वाला PK Token generate होता है
.ssh directory में PK Token शामिल public key file और private key file save होती है
- SSH connection के समय:
- SSH client, PK Token शामिल public key को SSH server पर भेजता है
- server,
AuthorizedKeysCommand से configured OpenPubkey verifier के जरिए public key की validity verify करता है
- PK Token valid हो और email access allow list में हो, तो connection approve हो जाता है
तकनीकी समस्याओं का समाधान
- PK Token transmission: SSH certificate के extension field का उपयोग करके PK Token को SSH public key में शामिल किया जाता है
- server पर validity verification:
AuthorizedKeysCommand का उपयोग करके public key validation को custom program(OpenPubkey verifier) को सौंपा जाता है
- public key matching verification: यह सुनिश्चित किया जाता है कि SSH session को सुरक्षित करने वाली public key, PK Token के भीतर मौजूद key से मेल खाती है
ओपन सोर्स होने का महत्व
- OPKSSH को Apache 2.0 license के तहत GitHub पर जारी किया गया है
- पहले यह prototype स्तर पर था, लेकिन अब stable release के रूप में पूरा SSH functionality प्रदान करता है
- Cloudflare इसे maintain या guarantee नहीं करता, लेकिन उसने code को OpenPubkey community को donate किया है
प्रमुख सुधार
- production use के लिए उपयुक्त SSH functionality जोड़ी गई
- automatic installation script प्रदान की गई
- बेहतर configuration tools शामिल किए गए
1 टिप्पणियां
Hacker News राय
ssh-keygencommand से सब कुछ किया जा सकता है, इसलिए administrator के नज़रिए से यह फायदेमंद है