Maqolalar 4 daqiqa 34 ko‘rish
Git kirish ma’lumotlari: token va helperlar
Git masofaviy repozitoriyga ulanishda foydalanuvchi nomi va parolni qayerdan oladi: URL, credential.* sozlamasi, credential helper yoki interaktiv so‘rov. Helper turlari, kontekstlar va nega parolni URL ichiga yozmaslik kerakligi.
Mundarija
Har git push da parol so‘ralishi charchatadi, lekin uni ~/.git-credentials ga ochiq matnda saqlash ham yechim emas. Bu bo‘lim Git credential tizimini tushuntiradi: kim so‘raydi, kim saqlaydi va qaysi usul xavfsiz. Xavfsizlik nuqtayi nazaridan o‘qishga arzigulik joy.
Bu ma’lumotnoma, dars emas
Bu qism Git'ning rasmiy qo‘llanmasi (git help credentials, Git 2.50.1) asosida
o‘zbekchaga o‘girilgan. Ketma-ket bajariladigan dars emas: kerak
bo‘lganda ochib, kerakli joyini o‘qiysiz. Git'ni noldan o‘rganmoqchi
bo‘lsangiz, avval Git va GitHub darslarini
bajaring.
Nomi#
gitcredentials — Git’ga foydalanuvchi nomi va parollarni taqdim etish.
Tavsif#
Git ba’zan masofaviy repozitoriyga ulanish uchun credential talab qiladi. HTTP transportida bu odatda foydalanuvchi nomi va parol yoki token; SSH’da esa alohida SSH kalit mexanizmi ishlaydi.
Git credentialni quyidagilardan olishi mumkin:
- URL ichidagi foydalanuvchi nomi:
https://user@example.com/repo.git. credential.*konfiguratsiyasi.- Credential helper — xavfsiz saqlash yoki tashqi tizimdan olish dasturi.
- Terminaldagi interaktiv so‘rov (
GIT_ASKPASS,core.askPass,SSH_ASKPASSyoki terminal prompt’i).
Parol yoki tokenni URL ichiga yozish tavsiya etilmaydi: u shell tarixi, jarayonlar ro‘yxati yoki loglarda oshkor bo‘lishi mumkin.
Credential so‘rash#
Git credential subsystem plumbing interfeysi:
git credential fill
protocol=https
host=example.com
Kirish bo‘sh satr bilan tugaydi. Git mos credentialni topsa, username= va password= maydonlarini chiqaradi.
Credential muvaffaqiyatli ishlaganini helper’ga bildirish:
git credential approve
protocol=https
host=example.com
username=alice
password=secret
Credential rad etilganini yoki yaroqsizligini bildirish:
git credential reject
protocol=https
host=example.com
username=alice
Takroriy so‘rovlardan qochish#
Credential helper sozlanadi:
git config --global credential.helper cache
cache credentialni vaqtincha xotirada saqlaydi:
git config --global credential.helper 'cache --timeout=3600'
store credentialni diskda shifrlamasdan saqlaydi:
git config --global credential.helper store
storexavfsiz emas: credential odatda~/.git-credentialsda ochiq matn ko‘rinishida turadi. Operatsion tizim keychain’i yoki maxsus credential manager afzal.
Bir nechta helper ketma-ket sozlanishi mumkin. Git foydalanuvchi nomi va maxfiy qiymat topilguncha ularni tartib bilan chaqiradi:
[credential]
helper = cache --timeout=300
helper = manager
Credential kontekstlari#
Credential URL konteksti bo‘yicha tanlanadi. Masalan:
[credential "https://example.com"]
username = alice
Bu example.com dagi HTTPS so‘rovlariga alice nomini beradi. Protokol va host odatda aniq mos keladi. HTTP(S) yo‘li standart holatda hisobga olinmaydi.
Yo‘lni ham credential kontekstiga qo‘shish:
git config --global credential.useHttpPath true
Shunda https://example.com/foo.git va https://example.com/bar.git alohida credential ishlatishi mumkin.
Sozlamalar#
credential.helper— chaqiriladigan helperlar.credential.username— standart foydalanuvchi nomi.credential.useHttpPath— HTTP(S) yo‘lini kontekstga kiritish.credential.sanitizePrompt— prompt’dagi URL boshqaruv belgilarini xavfsiz ko‘rsatish.credential.protectProtocol— credential protokolidagi satr ajratgichlarni himoyalash.
URL’ga xos sozlama:
git config --global credential.https://example.com.username alice
Maxsus helperlar#
Helper nomi quyidagicha talqin qilinadi:
foo→git credential-foodasturi;- mutlaq yo‘l → aynan shu dastur;
!shell command→ berilgan shell kodi.
Masalan:
[credential]
helper = foo --bar=baz
Git helper’ni get, store yoki erase amali bilan chaqiradi:
git credential-foo get
git credential-foo store
git credential-foo erase
Maydonlar standart kirish/chiqishda key=value satrlari bilan uzatiladi va bo‘sh satr bilan tugaydi. Helper bilmagan maydonni tashlab ketishi, bilgan qiymatlarini chiqarishi mumkin. Maxfiy qiymatlarni logga yozmaslik va xavfsiz saqlash helper muallifining vazifasidir.
Git to‘plami#
git(1) buyruqlar to‘plamining bir qismi.