તમારી એપની અંદર SSH પરમિશન એરર્સ ઉકેલવી

નવા SSH વપરાશકર્તાઓ ઘણીવાર મુશ્કેલીમાં મુકાય છે. તેઓ આ એરર જુએ છે:

WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0644 for 'id_rsa.pem' are too open.

આનો ઉકેલ એક સરળ ટર્મિનલ કમાન્ડ છે: chmod 600 id_rsa.pem. એન્જિનિયરો માટે આ સરળ છે. એજન્સી સ્ટાફ અથવા IT ઓપરેટરો જેઓ ટર્મિનલનો ઉપયોગ કરતા નથી, તેમના માટે આ એક મોટો અવરોધ છે. આના કારણે સતત સપોર્ટ ટિકિટો આવે છે.

અમે આ સમસ્યાને અમારી એપની અંદર જ ઉકેલવાનું નક્કી કર્યું. અમે પરમિશનનું નિદાન કરવા અને તેને આપમેળે સુધારવા માટે એક સિસ્ટમ બનાવી છે.

સમસ્યા

જો પરમિશન ખૂબ જ છૂટી હોય, તો OpenSSH પ્રાઇવેટ કી લોડ કરવાનો ઇનકાર કરે છે. જો અન્ય લોકો તમારી કી વાંચી શકે, તો તમારી સુરક્ષા જોખમમાં મુકાઈ જાય છે. મોટાભાગની કી ડિફોલ્ટ રીતે 0644 હોય છે, જે વિશ્વના કોઈપણ વ્યક્તિ દ્વારા વાંચી શકાય તેવી છે. OpenSSH માટે 0600 જરૂરી છે.

અમારો ઉકેલ

આને હેન્ડલ કરવા માટે અમે બે તબક્કાની અભિગમનો ઉપયોગ કરીએ છીએ.

તબક્કો 1: નિષ્ફળતા પછીની રિકવરી (Post-failure recovery)

જો પરમિશનના કારણે કનેક્શન નિષ્ફળ જાય છે, તો UI માં 'Fix and retry' બટન દેખાય છે. તેના પર ક્લિક કરવાથી સુધારો (fix) રન થાય છે અને કનેક્શન ફરીથી પ્રયાસ કરવામાં આવે છે.

તબક્કો 2: કનેક્શન પહેલાં નિવારણ (Pre-connection prevention)

વપરાશકર્તા કનેક્ટ પર ક્લિક કરે તે પહેલાં એપ કી પાથ (key path) ની તપાસ કરે છે. જો પરમિશન ખોટી હોય, તો અમે ચેતવણી (warning) બતાવીએ છીએ. વપરાશકર્તા તેને સુધારવાનું અથવા તે જ રીતે કનેક્ટ કરવાનું પસંદ કરી શકે છે.

અમે Windows ને પણ અલગ રીતે હેન્ડલ કરીએ છીએ. Windows, Unix પરમિશનને બદલે ACLs નો ઉપયોગ કરે છે. અમારો કોડ પ્લેટફોર્મ શોધી કાઢે છે અને એક્સેસ સુધારવા માટે icacls જેવો સાચો કમાન્ડ રન કરે છે.

અમે શા માટે આપમેળે (silently) સુધારો નથી કરતા

અમે સ્ટાર્ટઅપ વખતે કીઝને આપમેળે સુધારવાનો વિચાર કર્યો હતો. અમે આ વિચારને નકારી કાઢ્યો. કેટલાક વર્કફ્લોમાં શેર કરેલી કીઝ માટે ચોક્કસ પરમિશનની જરૂર હોય છે. જો અમે પૂછ્યા વગર તેને બદલી નાખીએ, તો અમે વપરાશકર્તાના વર્કફ્લોમાં અવરોધ ઊભો કરીએ છીએ.

અમારો નિયમ સરળ છે: અમે બધું જ નિદાન કરીએ છીએ, પરંતુ જ્યારે વપરાશકર્તા બટન પર ક્લિક કરે ત્યારે જ ફાઇલોમાં ફેરફાર કરીએ છીએ.

પરિણામ

ટેકનિકલ અવરોધોને શોષી લેતું UX બનાવવાથી સપોર્ટ વોલ્યુમ ઘટે છે. અમે વપરાશકર્તાને શું ખોટું છે તે બતાવીએ છીએ અને વન-ક્લિક ફિક્સ ઓફર કરીએ છીએ. આ ટર્મિનલનો ઉપયોગ કરવાના મનોવૈજ્ઞાનિક અવરોધને દૂર કરે છે.

સ્ત્રોત: https://dev.to/susumun/solving-permissions-are-too-open-from-inside-the-app-auto-diagnosing-and-auto-fixing-ssh-key-3j75