HTTP(S) പ്രാമാണീകരണത്തിനായി എല്ലായ്uപ്പോഴും ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ ആവശ്യപ്പെടുന്ന Git എങ്ങനെ ശരിയാക്കാം


നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും ടൈപ്പ് ചെയ്യാതെ തന്നെ ഡാറ്റ ആക്uസസ് ചെയ്യാനോ സുരക്ഷിതമായി കൈമാറാനോ.

എന്നിരുന്നാലും, HTTP(S) ഉപയോഗിച്ച്, എല്ലാ കണക്ഷനുകളും നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും നൽകാൻ നിങ്ങളെ പ്രേരിപ്പിക്കും (ഒരു പ്രത്യേക URL സന്ദർഭത്തിന് Git-ന് ആധികാരികത ആവശ്യമുള്ളപ്പോൾ) - Github ഉപയോക്താക്കൾക്ക് ഇത് നന്നായി അറിയാം.

ഈ ലേഖനത്തിൽ, HTTP(S) മുഖേനയുള്ള ആക്uസസ്സിനായി എല്ലായ്uപ്പോഴും ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ ആവശ്യപ്പെടുന്ന Git എങ്ങനെ ശരിയാക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതരാം. HTTP(S) വഴി ഒരു റിമോട്ട് റിപ്പോസിറ്ററിയുമായി സംവദിക്കുമ്പോൾ ഉപയോക്തൃനാമവും പാസ്uവേഡും ആവർത്തിച്ച് ആവശ്യപ്പെടുന്നതിൽ നിന്ന് Git-നെ തടയുന്നതിനുള്ള വിവിധ മാർഗങ്ങൾ ഞങ്ങൾ വിശദീകരിക്കും.

ലിനക്സിൽ Git എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

നിങ്ങളുടെ സിസ്റ്റത്തിൽ Git പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ, അത് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനായി നിങ്ങളുടെ Linux വിതരണത്തിന് ഉചിതമായ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക (ആവശ്യമെങ്കിൽ Sudo കമാൻഡ് ഉപയോഗിക്കുക).

$ sudo apt install git      [On Debian/Ubuntu]
# yum install git           [On CentOS/RHEL/Fedora]
$ sudo zypper install git   [On OpenSuse]
$ sudo pacman -S git        [On Arch Linux]

വിദൂര URL-ൽ Git ഉപയോക്തൃനാമവും പാസ്uവേഡും നൽകുന്നു

ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, HTTP(S) വഴി ഒരു റിമോട്ട് Git റിപ്പോസിറ്ററി ക്ലോൺ ചെയ്യുമ്പോൾ, എല്ലാ കണക്ഷനും കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു ഉപയോക്തൃനാമവും പാസ്uവേഡും ആവശ്യമാണ്.

നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും ചോദിക്കുന്നതിൽ നിന്ന് Git തടയുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് URL-ൽ ലോഗിൻ ക്രെഡൻഷ്യലുകൾ നൽകാം.

$ sudo git clone https://username:[email /username/repo_name.git
OR
$ sudo git clone https://username:[email /username/repo_name.git local_folder

ഷെൽ ഹിസ്റ്ററി ഫയലിലെ കമാൻഡിൽ നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും സംരക്ഷിക്കപ്പെടും എന്നതാണ് ഈ രീതിയുടെ പ്രധാന പോരായ്മ.

അതുപോലെ തന്നെ .git/config ഫയലിൽ ലോക്കൽ ഫോൾഡറിന് കീഴിലുള്ള, ഒരു സുരക്ഷാ അപകടസാധ്യതയുണ്ട്.

$ cat .git/config

ശ്രദ്ധിക്കുക: രണ്ട്-ഘടക പ്രാമാണീകരണം പ്രവർത്തനക്ഷമമാക്കിയ അല്ലെങ്കിൽ SAML സിംഗിൾ സൈൻ-ഓൺ ഉപയോഗിക്കുന്ന ഒരു ഓർഗനൈസേഷൻ ആക്uസസ് ചെയ്യുന്ന Github ഉപയോക്താക്കൾക്ക്, HTTPS Git-നുള്ള പാസ്uവേഡ് നൽകുന്നതിന് പകരം നിങ്ങൾ ഒരു വ്യക്തിഗത ആക്uസസ് ടോക്കൺ സൃഷ്uടിക്കുകയും ഉപയോഗിക്കുകയും വേണം (സാമ്പിൾ ഔട്ട്uപുട്ടുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഈ ഗൈഡിൽ). ഒരു വ്യക്തിഗത ആക്സസ് ടോക്കൺ സൃഷ്ടിക്കുന്നതിന്, Github-ൽ, ക്രമീകരണങ്ങൾ => ഡെവലപ്പർ ക്രമീകരണങ്ങൾ => വ്യക്തിഗത ആക്സസ് ടോക്കണുകൾ എന്നതിലേക്ക് പോകുക.

ഡിസ്കിൽ റിമോട്ട് ജിറ്റ് റിപ്പോസിറ്ററി ഉപയോക്തൃനാമവും പാസ്uവേഡും സംരക്ഷിക്കുന്നു

രണ്ടാമത്തെ രീതി, നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും ഡിസ്uകിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു പ്ലെയിൻ ഫയലിൽ സേവ് ചെയ്യാൻ Git ക്രെഡൻഷ്യൽ ഹെൽപ്പർ ഉപയോഗിക്കുക എന്നതാണ്.

$ git config credential.helper store				
OR
$ git config --global credential.helper store		

ഇപ്പോൾ മുതൽ, ഓരോ URL സന്ദർഭത്തിനും ആദ്യമായി ആക്uസസ് ചെയ്യുമ്പോൾ, ~/.git-credentials ഫയലിലേക്ക് Git ക്രെഡൻഷ്യലുകൾ എഴുതും. ഈ ഫയലിന്റെ ഉള്ളടക്കം കാണുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് cat കമാൻഡ് ഉപയോഗിക്കാം.

$ cat  ~/.git-credentials

അതേ URL സന്ദർഭത്തിനുള്ള തുടർന്നുള്ള കമാൻഡുകൾക്കായി, മുകളിലെ ഫയലിൽ നിന്ന് Git നിങ്ങളുടെ ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ വായിക്കും.

മുമ്പത്തെ രീതി പോലെ, സ്റ്റോറേജ് ഫയൽ എൻക്രിപ്റ്റ് ചെയ്തിട്ടില്ലാത്തതിനാൽ, സ്റ്റാൻഡേർഡ് ഫയൽസിസ്റ്റം പെർമിഷനുകളാൽ മാത്രം സംരക്ഷിക്കപ്പെടുന്നതിനാൽ, ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ Git-ലേക്ക് കൈമാറുന്നതിനുള്ള ഈ രീതിയും സുരക്ഷിതമല്ല.

ചുവടെ വിശദീകരിച്ചിരിക്കുന്ന മൂന്നാമത്തെ രീതി കൂടുതൽ സുരക്ഷിതമായി കണക്കാക്കപ്പെടുന്നു.

റിമോട്ട് ജിറ്റ് റിപ്പോസിറ്ററി ഉപയോക്തൃനാമവും പാസ്uവേഡും മെമ്മറിയിൽ കാഷെ ചെയ്യുന്നു

അവസാനമായി പക്ഷേ, നിങ്ങളുടെ ക്രെഡൻഷ്യലുകൾ മെമ്മറിയിൽ താൽക്കാലികമായി സൂക്ഷിക്കാൻ നിങ്ങൾക്ക് Git ക്രെഡൻഷ്യൽ സഹായിയും ഉപയോഗിക്കാം. അത് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് നൽകുക.

$ git config credential.helper cache
OR
$ git config --global credential.helper cache

മുകളിലുള്ള കമാൻഡ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, നിങ്ങൾ ആദ്യമായി ഒരു റിമോട്ട് പ്രൈവറ്റ് റിപ്പോസിറ്ററി ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുമ്പോൾ, Git നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും ആവശ്യപ്പെടുകയും കുറച്ച് സമയത്തേക്ക് മെമ്മറിയിൽ സൂക്ഷിക്കുകയും ചെയ്യും.

ഡിഫോൾട്ട് കാഷിംഗ് സമയം 900 സെക്കൻഡ് (അല്ലെങ്കിൽ 15 മിനിറ്റ്) ആണ്, അതിനുശേഷം നിങ്ങളുടെ ഉപയോക്തൃനാമവും പാസ്uവേഡും വീണ്ടും നൽകാൻ Git നിങ്ങളോട് ആവശ്യപ്പെടും. നിങ്ങൾക്ക് ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ മാറ്റാം (1800 സെക്കൻഡ് = 30 മിനിറ്റ് അല്ലെങ്കിൽ 3600 സെക്കൻഡ് = 1 മണിക്കൂർ).

$ git config --global credential.helper 'cache --timeout=18000'
OR
$ git config --global credential.helper 'cache --timeout=36000'

Git-നെയും ക്രെഡൻഷ്യൽ സഹായികളെയും കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, അവരുടെ മാൻ പേജുകൾ കാണുക.

$ man git
$ man git-credential-cache
$ man git-credential-store

ഈ ഗൈഡ് സഹായകമായിരുന്നോ? ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ഞങ്ങളെ അറിയിക്കുക. ഈ വിഷയത്തെക്കുറിച്ചുള്ള എന്തെങ്കിലും ചോദ്യങ്ങളോ ചിന്തകളോ നിങ്ങൾക്ക് പങ്കിടാനും കഴിയും.