Asosiy kontentga o‘tish

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.

git devops

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:

  1. URL ichidagi foydalanuvchi nomi: https://user@example.com/repo.git.
  2. credential.* konfiguratsiyasi.
  3. Credential helper — xavfsiz saqlash yoki tashqi tizimdan olish dasturi.
  4. Terminaldagi interaktiv so‘rov (GIT_ASKPASS, core.askPass, SSH_ASKPASS yoki 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:

Terminal
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:

Terminal
git credential approve
protocol=https
host=example.com
username=alice
password=secret

Credential rad etilganini yoki yaroqsizligini bildirish:

Terminal
git credential reject
protocol=https
host=example.com
username=alice

Takroriy so‘rovlardan qochish#

Credential helper sozlanadi:

Terminal
git config --global credential.helper cache

cache credentialni vaqtincha xotirada saqlaydi:

Terminal
git config --global credential.helper 'cache --timeout=3600'

store credentialni diskda shifrlamasdan saqlaydi:

Terminal
git config --global credential.helper store

store xavfsiz emas: credential odatda ~/.git-credentials da 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:

INI
[credential]
    helper = cache --timeout=300
    helper = manager

Credential kontekstlari#

Credential URL konteksti bo‘yicha tanlanadi. Masalan:

INI
[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:

Terminal
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:

Terminal
git config --global credential.https://example.com.username alice

Maxsus helperlar#

Helper nomi quyidagicha talqin qilinadi:

  • foo → git credential-foo dasturi;
  • mutlaq yo‘l → aynan shu dastur;
  • !shell command → berilgan shell kodi.

Masalan:

INI
[credential]
    helper = foo --bar=baz

Git helper’ni get, store yoki erase amali bilan chaqiradi:

Terminal
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.

4 daqiqa 34 marta o‘qildi