ວິທີການແກ້ໄຂ Git ສະເຫມີຂໍໃຫ້ມີການຢັ້ງຢືນຜູ້ໃຊ້ ສຳ ລັບການກວດສອບຄວາມຖືກຕ້ອງຂອງ HTTP (S)
ໃນການເຂົ້າເຖິງຫຼືເຮັດວຽກກັບຫໍສະມຸດ Git ທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ, ທ່ານສາມາດໃຊ້ໂປແກຼມ SSH ຫຼື HTTP (S); ກັບອະດີດ, ເມື່ອເວົ້າເຖິງຫໍສະມຸດສ່ວນຕົວ, ທ່ານສາມາດຕັ້ງຄ່າລະຫັດ SSH ແບບງ່າຍດາຍໂດຍບໍ່ຕ້ອງໃຊ້ passphrase ເຊິ່ງຊ່ວຍໃຫ້ທ່ານສາມາດໂອນຂໍ້ມູນໄດ້ຢ່າງປອດໄພໂດຍບໍ່ຕ້ອງໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານ.
ເຖິງຢ່າງໃດກໍ່ຕາມ, ດ້ວຍ HTTP (S), ທຸກໆການເຊື່ອມຕໍ່ຈະກະຕຸ້ນທ່ານໃຫ້ໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານ (ເມື່ອ Git ຕ້ອງການກວດສອບຄວາມຖືກຕ້ອງ ສຳ ລັບສະພາບການ URL ໂດຍສະເພາະ) - ຜູ້ໃຊ້ Github ຮູ້ເລື່ອງນີ້ດີ.
ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການແກ້ໄຂ Git ສະເຫມີຂໍໃຫ້ມີຄວາມ ໜ້າ ເຊື່ອຖືຂອງຜູ້ໃຊ້ ສຳ ລັບການເຂົ້າເຖິງຜ່ານ HTTP (S). ພວກເຮົາຈະອະທິບາຍວິທີການທີ່ແຕກຕ່າງກັນໃນການປ້ອງກັນ Git ຈາກການກະຕຸ້ນເຕືອນເລື້ອຍໆ ສຳ ລັບຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານເມື່ອພົວພັນກັບບ່ອນເກັບຂໍ້ມູນຫ່າງໄກສອກຫຼີກຜ່ານ HTTP (S).
ວິທີການຕິດຕັ້ງ Git ໃນ Linux
ຖ້າທ່ານບໍ່ມີຊຸດ 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]
ການໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງ Git ໃນ URL ຫ່າງໄກສອກຫຼີກ
ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາກ່ອນ ໜ້າ ນີ້, ເມື່ອ cloning ຫໍສະມຸດ Git ທີ່ຢູ່ຫ່າງໄກສອກຫຼີກຜ່ານ HTTP (S), ທຸກໆການເຊື່ອມຕໍ່ຕ້ອງມີຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານດັ່ງທີ່ສະແດງໄວ້.
ເພື່ອປ້ອງກັນບໍ່ໃຫ້ 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
ຂໍ້ບົກຜ່ອງຕົ້ນຕໍຂອງວິທີການນີ້ທີ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານຈະຖືກບັນທຶກໄວ້ໃນ ຄຳ ສັ່ງໃນເອກະສານປະຫວັດ Shell.
ເຊັ່ນດຽວກັນກັບໃນເອກະສານ .git/config ພາຍໃຕ້ແຟ້ມທ້ອງຖິ່ນ, ເຊິ່ງມີຄວາມສ່ຽງດ້ານຄວາມປອດໄພ.
$ cat .git/config
ໝາຍ ເຫດ: ສຳ ລັບຜູ້ໃຊ້ Github ທີ່ໄດ້ເປີດໃຊ້ການກວດສອບສອງປັດໃຈຫລືເຂົ້າເຖິງອົງກອນທີ່ໃຊ້ SAML ເຂົ້າສູ່ລະບົບດຽວ, ທ່ານຕ້ອງຜະລິດແລະໃຊ້ token ເຂົ້າເຖິງສ່ວນບຸກຄົນແທນທີ່ຈະໃສ່ລະຫັດຜ່ານຂອງທ່ານ ສຳ ລັບ HTTPS Git (ດັ່ງທີ່ສະແດງໃນຜົນໄດ້ຮັບຂອງຕົວຢ່າງ ໃນຄູ່ມືນີ້). ເພື່ອສ້າງສັນຍາລັກການເຂົ້າເຖິງສ່ວນບຸກຄົນ, ໃນ Github, ໄປທີ່ Settings => ຕັ້ງຄ່າການພັດທະນາ => tokens ການເຂົ້າເຖິງສ່ວນບຸກຄົນ.
ບັນທຶກຊື່ຜູ້ໃຊ້ຂອງບ່ອນເກັບຂໍ້ມູນ Git ໄລຍະໄກແລະລະຫັດຜ່ານໃສ່ແຜ່ນ
ວິທີການທີສອງແມ່ນໃຊ້ຜູ້ຊ່ວຍຢືນຢັນຊື່ Git ເພື່ອບັນທຶກຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານໄວ້ໃນເອກະສານ ທຳ ມະດາໃນແຜ່ນດິດດັ່ງທີ່ສະແດງໄວ້.
$ git config credential.helper store OR $ git config --global credential.helper store
ຈາກນີ້, Git ຈະຂຽນຂໍ້ມູນປະ ຈຳ ຕົວເຂົ້າໃນແຟ້ມ ~/.git-credentials ສຳ ລັບແຕ່ລະສະພາບ URL, ເມື່ອເຂົ້າໃຊ້ຄັ້ງ ທຳ ອິດ. ເພື່ອເບິ່ງເນື້ອໃນຂອງເອກະສານນີ້, ທ່ານສາມາດໃຊ້ ຄຳ ສັ່ງແມວດັ່ງທີ່ສະແດງໄວ້.
$ cat ~/.git-credentials
ສຳ ລັບ ຄຳ ສັ່ງຕໍ່ໄປ ສຳ ລັບສະພາບການຂອງ URL ດຽວກັນ, Git ຈະອ່ານຂໍ້ມູນປະ ຈຳ ຕົວຜູ້ໃຊ້ຂອງທ່ານຈາກເອກະສານຂ້າງເທິງ.
ເຊັ່ນດຽວກັບວິທີການທີ່ຜ່ານມາ, ວິທີການຖ່າຍທອດຂໍ້ມູນປະ ຈຳ ຕົວຂອງຜູ້ໃຊ້ໃຫ້ Git ຍັງບໍ່ປອດໄພເນື່ອງຈາກເອກະສານເກັບຂໍ້ມູນບໍ່ຖືກເຂົ້າລະຫັດແລະມັນຖືກປ້ອງກັນໂດຍການອະນຸຍາດເອກະສານລະບົບມາດຕະຖານເທົ່ານັ້ນ.
ວິທີການທີສາມທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້, ຖືວ່າມີຄວາມປອດໄພກວ່າ.
ການເກັບຂໍ້ມູນຊື່ຜູ້ໃຊ້ຂອງບ່ອນເກັບຂໍ້ມູນຈາກໄລຍະໄກ Git ແລະລະຫັດຜ່ານໃນຫນ່ວຍຄວາມ ຈຳ
ສຸດທ້າຍ, ທ່ານຍັງສາມາດໃຊ້ເຄື່ອງຊ່ວຍເຫຼືອປະ ຈຳ ຕົວ Git ເພື່ອຊ່ວຍປະຢັດຂໍ້ມູນຂອງທ່ານໄວ້ໃນຄວາມຊົງ ຈຳ ເປັນບາງຄັ້ງ. ເພື່ອເຮັດແນວນັ້ນ, ໃຫ້ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ git config credential.helper cache OR $ git config --global credential.helper cache
ຫຼັງຈາກທີ່ເຮັດ ຄຳ ສັ່ງຂ້າງເທິງ, ເມື່ອທ່ານພະຍາຍາມເຂົ້າໄປໃນຫໍສະມຸດເອກະຊົນທີ່ຢູ່ຫ່າງໄກສອກຫຼີກເປັນຄັ້ງ ທຳ ອິດ, Git ຈະຂໍຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານແລະບັນທຶກມັນໄວ້ໃນຄວາມຊົງ ຈຳ ໃນບາງເວລາ.
ເວລາໃນການຕັ້ງຄ່າເລີ່ມຕົ້ນແມ່ນ 900 ວິນາທີ (ຫຼື 15 ນາທີ), ຫລັງຈາກນັ້ນ Git ຈະກະຕຸ້ນທ່ານໃຫ້ໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານຂອງທ່ານອີກຄັ້ງ. ທ່ານສາມາດປ່ຽນມັນໄດ້ດັ່ງຕໍ່ໄປນີ້ (1800 ວິນາທີ = 30 ນາທີຫລື 3600 ວິນາທີ = 1 ຊົ່ວໂມງ).
$ git config --global credential.helper 'cache --timeout=18000' OR $ git config --global credential.helper 'cache --timeout=36000'
ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຜູ້ຊ່ວຍ Git ແລະຂໍ້ມູນຄວາມເຊື່ອຖື, ເບິ່ງ ໜ້າ man ຂອງພວກເຂົາ.
$ man git $ man git-credential-cache $ man git-credential-store
ຄຳ ແນະ ນຳ ນີ້ມີປະໂຫຍດບໍ? ໃຫ້ພວກເຮົາຮູ້ຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້. ທ່ານກໍ່ສາມາດແບ່ງປັນ ຄຳ ຖາມຫຼືຄວາມຄິດໃດໆກ່ຽວກັບຫົວຂໍ້ນີ້.