प्रमाणीकरण
DR-Terminal तीन प्रमाणीकरण विधियों का समर्थन करता है: पासवर्ड, निजी कुंजी, और FIDO2 (YubiKey) सुरक्षा कुंजी।
पासवर्ड
सबसे सरल रास्ता। किसी सहेजे गए कनेक्शन पर दर्ज किया गया पासवर्ड प्लेटफ़ॉर्म के सुरक्षित संग्रह में उतरता है — कभी JSON कॉन्फ़िग में नहीं। यदि पासवर्ड फ़ील्ड खाली है तो ऐप हर बार कनेक्ट करने पर पूछता है।
सार्वजनिक-कुंजी → पासवर्ड फ़ॉलबैक: जब सर्वर किसी सार्वजनिक कुंजी को अस्वीकार कर देता है (जैसे वह authorized_keys में नहीं है), तो DR-Terminal कनेक्शन गिराने के बजाय स्वतः उसी उपयोगकर्ता के लिए पासवर्ड माँगता है।
निजी कुंजी
OpenSSH, PKCS#1, PKCS#8, ssh.com या PuTTY PPK (v2/v3) प्रारूप की कुंजियाँ सभी स्वीकार की जाती हैं — प्रारूप स्वतः पहचाना जाता है, इसलिए कोई .ppk कुंजी बिना पहले रूपांतरित किए काम करती है। आप कर सकते हैं:
- कुंजी को सीधे कनेक्शन फ़ॉर्म में पेस्ट करें।
- key manager (Settings → Security → SSH keys) का उपयोग करें और एक संग्रहित कुंजी चुनें। यहाँ आयात की गई कुंजी फ़ाइलें अतिरिक्त रूप से रॉ बाइनरी DER भी हो सकती हैं।
यदि कुंजी किसी passphrase से एन्क्रिप्ट है, तो DR-Terminal कुंजी के पहली बार उपयोग होने पर वह माँगता है और फिर उसे केवल मेमोरी में रखता है — ssh-agent की तरह, प्रति ऐप-रन एक बार अनलॉक; ऐप बंद करने पर हर कुंजी फिर से लॉक हो जाती है। आयातित एन्क्रिप्टेड कुंजियाँ सुरक्षित संग्रह में अपने मूल एन्क्रिप्टेड रूप में ही रहती हैं। हम कई एल्गोरिदम का समर्थन करते हैं — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO)।
कुंजी जनरेटर
Settings → Security में एक Generate SSH key विज़ार्ड है। प्रकार चुनें (जैसे ed25519), एक passphrase सेट करें (वैकल्पिक — यह कुंजी को सुरक्षित संग्रह के अंदर भी सुरक्षित रखती है), और कुंजी स्थानीय रूप से सहेजी जाती है। डिफ़ॉल्ट कुंजी टिप्पणी ${user}@${host}@DR-Terminal है — सर्वर पर कुंजी को पहचानने के लिए सुविधाजनक। सार्वजनिक कुंजी को सर्वर पर ~/.ssh/authorized_keys के लिए क्लिपबोर्ड में कॉपी किया जा सकता है।
सूची में मौजूद कुंजियों का नाम जगह पर ही बदला जा सकता है; यदि आपके चुने नाम का किसी मौजूदा से टकराव हो, तो ऐप स्वतः (2) जोड़ देता है।
कुंजी कनवर्टर
Settings → Security → SSH keys → Convert किसी निजी कुंजी को हर सामान्य प्रारूप के बीच फिर से सीरियलाइज़ करता है — एक स्रोत चुनें (एक संग्रहित कुंजी, एक फ़ाइल, या पेस्ट किया गया टेक्स्ट) और एक लक्ष्य प्रारूप चुनें, फिर परिणाम को कॉपी करें, साझा करें या सहेजें।
दोनों दिशाओं में प्रारूप:
| प्रारूप | पढ़ना | लिखना |
|---|---|---|
OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
PKCS#1 (BEGIN RSA PRIVATE KEY, केवल RSA) | ✓ | ✓ |
| PuTTY PPK — v2 और v3 | ✓ | ✓ |
इनपुट PEM (टेक्स्ट), PuTTY PPK, या रॉ बाइनरी DER हो सकता है — प्रारूप स्वतः पहचाना जाता है। कुंजी प्रकार: RSA, Ed25519 और ECDSA (P-256/384/521)।
- PuTTY PPK निर्यात अब दोनों दिशाओं में काम करता है (पहले ऐप केवल
.ppkपढ़ सकता था)। संस्करण चयनकर्ता से v3 (Argon2id KDF + HMAC-SHA-256, आधुनिक PuTTY) या v2 (पुराना PuTTY) चुनें। इस तरह बनी फ़ाइलें PuTTY/puttygenमें बिना बदलाव के लोड होती हैं। - वैकल्पिक निर्यात passphrase. एन्क्रिप्ट-रहित कुंजी के लिए इसे खाली छोड़ें; इसे सेट करें और आउटपुट प्रति-प्रारूप एक मजबूत KDF (bcrypt / PBKDF2 / Argon2id) से एन्क्रिप्ट होता है। Security & data → निर्यात की गई कुंजियाँ देखें।
- यदि रूपांतरण विफल होता है (गलत स्रोत passphrase, असंगत प्रारूप) तो ऐप अब किसी सामान्य त्रुटि के बजाय वास्तविक कारण दिखाता है।
PKCS#1 केवल RSA कुंजियों का वर्णन करता है, इसलिए वह लक्ष्य केवल तभी दिया जाता है जब स्रोत कोई RSA कुंजी हो।
किसी पासवर्ड कनेक्शन को कुंजी पर बदलें
आपको authorized_keys हाथ से संपादित करने की ज़रूरत नहीं है। किसी सहेजे गए पासवर्ड कनेक्शन के लिए DR-Terminal दो जगहों पर एक निर्देशित अपग्रेड देता है:
- कनेक्शन सूची — किसी पासवर्ड कनेक्शन के कार्ड पर मौजूद कुंजी आइकन माइग्रेशन विज़ार्ड शुरू करता है।
- सत्र के अंदर — किसी जुड़े हुए पासवर्ड सत्र के टर्मिनल मेनू में Switch to SSH Key होता है।
दोनों एक ही प्रवाह चलाते हैं: कोई संग्रहित कुंजी चुनें या नई जनरेट करें, DR-Terminal मौजूदा पासवर्ड लॉगिन के ज़रिए सार्वजनिक कुंजी सर्वर पर भेजता है, जाँचता है कि कुंजी प्रमाणीकरण वाकई काम करता है, और उसके बाद ही सहेजे गए कनेक्शन को कुंजी प्रमाणीकरण पर बदलता है। यदि जाँच विफल होती है, तो कनेक्शन अपरिवर्तित रहता है।
सुरक्षा कुंजी (FIDO2 / YubiKey)
DR-Terminal ed25519-sk और ecdsa-sk कुंजियों को संभालता है — और आप उन्हें ऐप के अंदर से ही जनरेट कर सकते हैं। किसी बाहरी ssh-keygen की ज़रूरत नहीं।
DR-Terminal में YubiKey-समर्थित कुंजी जनरेट करें
- Settings → Security → SSH keys → Generate SSH key।
- Security key स्विच चालू करें। एल्गोरिदम चुनें — Ed25519-SK (अनुशंसित) या ECDSA-SK।
- संकेत मिलने पर अपने YubiKey को स्पर्श करें। ऐप टोकन से एक नया क्रेडेंशियल बनाने को कहता है और सार्वजनिक कुंजी पर हस्ताक्षर करता है।
- कुंजी DR-Terminal के key manager में संग्रहित होती है। सार्वजनिक कुंजी कॉपी करें और इसे लक्ष्य सर्वर पर
~/.ssh/authorized_keysमें पेस्ट करें।
Windows Hello: Windows पर FIDO2 PIN संकेत किसी इन-ऐप डायलॉग के बजाय मूल Windows Hello डायलॉग (PIN / फ़िंगरप्रिंट / चेहरा) होता है।
Resident कुंजियाँ (स्वयं YubiKey पर संग्रहित) कुंजी फ़ाइल साथ रखने की ज़रूरत को समाप्त कर देती हैं — पूरा रहस्य टोकन पर ही रहता है। DR-Terminal में जनरेट की गई कुंजियाँ non-resident होती हैं: क्रेडेंशियल हैंडल key manager में रखा जाता है और टोकन के साथ उसकी ज़रूरत पड़ती है।
मौजूदा SK कुंजी का उपयोग
यदि आपके पास पहले से कहीं और जनरेट की गई कोई id_ed25519_sk / id_ecdsa_sk है (जैसे ssh-keygen -t ed25519-sk के माध्यम से), तो इसे उसी key manager के द्वारा आयात करें — DR-Terminal आयातित और जनरेट की गई SK कुंजियों को एक ही तरह से मानता है।
कनेक्ट समय पर
DR-Terminal आपकी कुंजी पर एक स्पर्श का अनुरोध करता है। संकेतक झपकता है — उसे टैप करें। iOS NFC और USB-C का समर्थन करता है (YubiKey 5Ci और उसके बाद)। Android — NFC + USB (OTG)। Desktop मूल FIDO2 APIs का उपयोग करता है (Windows Hello, macOS, libfido2 के माध्यम से Linux)।