𝗦𝗼𝗹𝘃𝗶𝗻𝗴 𝗦𝗦𝗛 𝗣𝗲𝗿𝗺𝗶𝘀𝘀𝗶𝗼𝗻 𝗘𝗿𝗿𝗼𝗿𝘀 𝗜𝗻𝘀𝗶𝗱𝗲 𝗬𝗼𝘂𝗿 𝗔𝗽𝗽
नवीन SSH वापरकर्त्यांना अनेकदा अडचणी येतात. त्यांना असा एरर दिसतो:
WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'id_rsa.pem' are too open.
याचे निराकरण करण्यासाठी एक साधा टर्मिनल कमांड आहे: chmod 600 id_rsa.pem. इंजिनिअर्ससाठी हे सोपे आहे. परंतु, एजन्सी स्टाफ किंवा IT ऑपरेटर्स जे टर्मिनल वापरत नाहीत, त्यांच्यासाठी हा एक मोठा अडथळा आहे. यामुळे सतत सपोर्ट तिकिट्स (support tickets) तयार होतात.
आम्ही हे आमच्या ॲपमध्येच सोडवण्याचे ठरवले. आम्ही परमिशन आपोआप तपासण्यासाठी (diagnose) आणि दुरुस्त करण्यासाठी एक सिस्टम तयार केली आहे.
The Problem जर परमिशन खूप सैल (loose) असतील, तर OpenSSH प्रायव्हेट की लोड करण्यास नकार देते. जर इतर लोक तुमची की वाचू शकत असतील, तर तुमची सुरक्षा धोक्यात येते. बहुतेक कीज डिफॉल्टनुसार 0644 असतात, ज्या कोणालाही वाचता येतात (world-readable). OpenSSH साठी 0600 आवश्यक असते.
Our Solution हे हाताळण्यासाठी आम्ही दोन टप्प्यांचा (two-phase) दृष्टिकोन वापरतो.
Phase 1: Post-failure recovery जर परमिशनमुळे कनेक्शन फेल झाले, तर UI मध्ये 'Fix and retry' बटण दिसते. त्यावर क्लिक केल्यावर दुरुस्ती प्रक्रिया राबवली जाते आणि कनेक्शन पुन्हा करण्याचा प्रयत्न केला जातो.
Phase 2: Pre-connection prevention वापरकर्त्याने 'connect' वर क्लिक करण्यापूर्वी ॲप की पाथची (key path) तपासणी करते. जर परमिशन चुकीची असेल, तर आम्ही चेतावणी (warning) दाखवतो. वापरकर्ता ती दुरुस्त करण्याचा किंवा तशीच कनेक्ट करण्याचा पर्याय निवडू शकतो.
आम्ही विंडोजसाठी (Windows) वेगळी पद्धत वापरतो. विंडोजमध्ये युनिक्स परमिशनऐवजी ACLs वापरले जातात. आमचा कोड प्लॅटफॉर्म ओळखतो आणि ॲक्सेस दुरुस्त करण्यासाठी icacls सारखा योग्य कमांड चालवतो.
Why we do not auto-fix silently आम्ही स्टार्टअपला कीज आपोआप दुरुस्त करण्याचा विचार केला होता, परंतु आम्ही ही कल्पना नाकारली. काही वर्कफ्लोमध्ये शेअर केलेल्या कीजसाठी विशिष्ट परमिशनची आवश्यकता असते. जर आम्ही विचारल्याशिवाय त्या बदलल्या, तर वापरकर्त्याचा वर्कफ्लो बिघडू शकतो.
आमचा नियम साधा आहे: आम्ही सर्व गोष्टींची तपासणी (diagnose) करतो, परंतु वापरकर्त्याने बटण क्लिक केल्यावरच फाईल्समध्ये बदल करतो.
The Result तांत्रिक अडथळे दूर करणारा UX तयार केल्यामुळे सपोर्टची संख्या कमी होते. आम्ही वापरकर्त्याला काय चुकीचे आहे ते दाखवतो आणि एका क्लिकवर दुरुस्तीचा पर्याय देतो. यामुळे टर्मिनल वापरण्याचा मानसिक अडथळा दूर होतो.