Git terus meminta saya untuk memasukkan kata sandi


665

Saya sudah menggunakan Git untuk sementara waktu sekarang, tetapi permintaan terus-menerus untuk kata sandi mulai membuat saya bingung.

Saya menggunakan Mac OS X dan GitHub, dan saya mengatur Git dan kunci SSH saya seperti yang diperintahkan oleh halaman Set Up Git GitHub .

Saya juga menambahkan kunci SSH github ke gantungan kunci Mac OS X saya, sebagaimana disebutkan pada halaman frasa sandi SSH GitHub . Kunci publik saya terdaftar di Git.

Namun demikian, setiap kali saya mencoba Git pull, saya harus memasukkan nama pengguna dan kata sandi saya. Apakah ada sesuatu selain kunci SSH yang perlu saya atur untuk ini?


1
Pertanyaan konyol, tetapi apakah Anda sudah memverifikasi bahwa kunci SSH bekerja ketika hanya menggunakan ssh ke mesin dengan git?
Kurt Stutsman

4
Maksud Anda sesuatu seperti ssh -T git@github.com? Ya, itu bekerja dengan baik (jika agak lambat).
Catherine


Untuk https url, Anda dapat menggunakan (dengan git1.8.3 +) pembantu kredensial git ' netrc'. Lihat contoh lengkap di sini .
VonC

Saya adalah pengguna Windows, dan saya juga menghadapi masalah permintaan kata sandi bahkan setelah menambahkan kunci publik saya ke file server otor_keys. Yang benar-benar masalah adalah saya tidak menyimpan kunci publik / pribadi saya di bawah folder .ssh dari folder c: \ program \ file git. Jika ada yang menghadapi masalah seperti itu, harap salin kunci Anda di folder ini dan cobalah mendorong / menarik.
Raja Amer Khan

Jawaban:


797

Saya pikir Anda mungkin memiliki URL repositori Git yang salah.

Buka .git/configdan temukan bagian [remote "origin"]. Pastikan Anda menggunakan SSH:

ssh://git@github.com/username/repo.git

Anda dapat melihat URL SSH di halaman utama repositori Anda jika Anda mengklik Kloning atau mengunduh dan memilih ssh .

Dan BUKAN httpsatau gitsatu:

https://github.com/username/repo.git
git://github.com/username/repo.git

Anda sekarang dapat memvalidasi hanya dengan kunci SSH daripada nama pengguna dan kata sandi.

Jika Git mengeluh 'origin' has already been added, buka .configfile dan edit url = "..."bagian setelahnya [remote origin]sebagaiurl = ssh://github/username/repo.git


Hal yang sama berlaku untuk layanan lain. Pastikan alamatnya terlihat seperti:protocol://something@url

Misalnya .git/configuntuk Azure DevOps:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

4
Ini mungkin itu. Ketika saya memanggil git remote -v saya mendapatkan: origin github.com/Foo/Bar.git (fetch) origin github.com/Foo/Bar.git (push) sedangkan untuk bekerja dengan SSH sepertinya itu seharusnya: origin git @ github.com: Foo / Bar.git (fetch) origin git@github.com: Foo / Bar.git (push) Ini mungkin karena saya awalnya memeriksa proyek saya menggunakan aplikasi Mac GitHub ( mac.github.com ). Adakah yang bisa saya perbaiki?
Catherine

8
Baik perbaiki url di file .git / config, gunakan git-remote untuk memperbaikinya, atau hapus repo lokal Anda dan tiru lagi dengan URL yang benar.
static_rtti

91
Hanya untuk mengeja ini (seperti yang saya butuhkan): buka .git / config dan di [remote "origin"]set bagian url = ssh://git@github.com/username/Repo.git. Itu berhasil bagi saya.
Greg K

13
Aneh, solusi @ GregK tidak bekerja untuk saya, tetapi url = git@github.com:organization/Repo.gitberhasil. +1 untuk menuntun saya ke jalan yang benar! Keberhasilan!
jmort253

3
Saya tidak bisa cukup menekankan betapa pentingnya untuk CLONE menggunakan ssh: // git @ github / [username] / [reponame] .git adalah Anda ingin menggunakan kunci untuk mengakses GIT tidak perlu mengetik nama pengguna dan kata sandi Anda setiap kali . Saya menemukan satu-satunya cara untuk memperbaikinya adalah menghapus repo lokal dan mengkloning lagi $ git clone ssh: // git @ github / [username] / [reponame] .git
Gene Myers

555

Konfigurasikan kredensial.bantuan

Pada OS X (sekarang macOS), jalankan ini di Terminal :

git config --global credential.helper osxkeychain

Ini memungkinkan Git untuk menggunakan file Keychain.app untuk menyimpan nama pengguna dan kata sandi dan untuk mengambil frasa sandi ke kunci SSH pribadi Anda dari gantungan kunci.

Untuk penggunaan Windows:

git config --global credential.helper wincred

Penyelesaian masalah

Jika pembantu kredensial Git dikonfigurasi dengan benar, macOS menyimpan frasa sandi di gantungan kunci. Terkadang koneksi antara SSH dan frasa sandi yang disimpan dalam gantungan kunci dapat terputus. Jalankan ssh-add -Katau ssh-add ~/.ssh/id_rsauntuk menambahkan kunci ke gantungan kunci lagi.

macOS v10.12 (Sierra) berubah menjadi ssh

Untuk macOS v10.12 (Sierra), ssh-add -Kperlu dijalankan setelah setiap reboot. Untuk menghindari ini, buat ~/.ssh/configdengan konten ini.

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Dari ssh_config manhalaman pada 10.12.2:

GunakanKeychain

Di macOS, tentukan apakah sistem harus mencari frasa sandi di gantungan kunci pengguna ketika mencoba menggunakan kunci tertentu. Ketika frasa sandi disediakan oleh pengguna, opsi ini juga menentukan apakah frasa sandi harus disimpan ke dalam gantungan kunci setelah diverifikasi menjadi benar. Argumennya harus 'ya' atau 'tidak'. Standarnya adalah 'tidak'.

Apple telah menambahkan Technote 2449 yang menjelaskan apa yang terjadi.

Sebelum macOS Sierra, sshakan hadir dialog yang menanyakan frasa sandi Anda dan akan menawarkan opsi untuk menyimpannya di gantungan kunci. UI ini sudah usang beberapa waktu lalu dan telah dihapus.


30
Sejauh ini, ini adalah cara terbaik untuk melakukan ini karena aplikasi Github untuk OSX (mungkin Windows juga) menggunakan jalur https untuk repositori git secara default. Ada juga alasan bagus untuk menggunakan https daripada ssh / git karena banyak jaringan perusahaan hanya mengizinkan lalu lintas di port 80 dan 443 untuk alasan keamanan.
codehugger

2
Anda perlu git 1.7.10 atau yang lebih baru untuk menggunakan pembantu kredensial.
jbandi

3
+1 untuk solusi keychain.app. Ini BAGUS bagi saya karena server git atasan saya hanya mendukung http yang dilayani melalui apache dan mereka sangat tidak menyarankan menggunakan .netrcmetode file yang menempatkan kata sandi Anda dalam plaintext.
Josh

3
Catatan, saya mendapatkan kesalahan 'credential-osxkeychain' is not a git command.karena saya tidak memiliki pembantu kredensial yang diinstal. Saya mengikuti instruksi di sini untuk menginstalnya: help.github.com/articles/set-up-git#password-caching
Hugh

2
Terima kasih untuk pembaruan Sierra, saya baru saja memperbarui dan tidak tahu mengapa github terus meminta pw ketika saya menambahkan git config --global credential.helper osxkeychainfile konfigurasi di .sshdirektori saya memperbaikinya.
piksel 67

139

Ini terjadi pada saya ketika saya memutakhirkan ke macOS v10.12 (Sierra). Sepertinya agen SSH dihapus saat peningkatan.

$ ssh-add -L
The agent has no identities.

Cukup menjalankan ssh-addmenemukan identitas saya yang ada. Saya memasukkan kata sandi dan baik untuk pergi lagi.


9
+1 rusak oleh peningkatan versi Sierra. Perhatikan kata sandi adalah kata sandi untuk kunci SSH Anda dan bukan kata sandi pengguna Mac Anda.
mbonness

1
Melakukan ssh-add berfungsi tetapi tampaknya diatur ulang dengan menutup jendela Terminal. Mungkin ini "fitur" baru.
joshd

Kepala - ini terjadi lagi dengan pembaruan Sierra lain (10.12.2) tetapi perbaikan yang sama berlaku.
Brian

Adakah yang tahu bagaimana agar ini tidak diatur ulang setelah Terminal ditutup?
nickjwallin

1
Saya baru saja memperbarui macbook pro saya ke 10.12.2 dan itu merusak git saya. Menggunakan ssh-add benar-benar bekerja untuk saya. Terima kasih @amcc!
jimmyplaysdrums

68

Gunakan ini: Ganti github.com dengan nama host yang sesuai

git remote set-url origin git@github.com:user/repo.git

Saya sudah memiliki set itu saat melihat git remote -v. Namun, saya masih dimintai kata sandi.
IgorGanapolsky

Sama, saya telah menetapkan apa yang dia sarankan, tetapi saya masih mendapatkan prompt untuk kata sandi, bagaimana saya mencegahnya?
cyber8200

@IgorGanapolsky: Apakah Anda pernah menemukan solusi untuk Anda?
cyber8200

1
Ini berfungsi dengan baik. Ini aneh bahwa URL jarak jauh dengan git@**tidak meminta kredensial dan URL dengan https@**:). Jadi saya menemukan dokumen ini .
Sujit Kumar Singh

54

Seperti yang dikatakan orang lain, Anda dapat menginstal pembantu cache kata sandi. Saya kebanyakan hanya ingin memposting tautan untuk platform lain, dan bukan hanya Mac. Saya menjalankan server Linux dan ini sangat membantu: Caching kata sandi GitHub Anda di Git

Untuk Mac:

git credential-osxkeychain

Windows:

git config --global credential.helper wincred

Linux:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

5
Saya harus gulir ke bawah ke jawaban ketiga untuk melihat instruksi Linux, ini harus menjadi jawaban utama karena ini adalah masalah yang sering dirujuk.
KoldBane

22

Cari juga siapa yang meminta kata sandi Anda. Apakah itu Git atau agen SSH Anda?

Dalam kasus saya, setiap kali saya melakukannya git pull, saya bertanya:

Enter passphrase for key '/work/username/.ssh/id_rsa':

Jadi saya berasumsi bahwa itu adalah Git yang meminta kata sandi. Jadi saya terus mencari solusi, baru kemudian menyadari bahwa agen SSH saya sudah tutup. Yang bisa diperbaiki menggunakan eval $(ssh-agent)dan ssh-addseperti yang diberikan di sini.

Saya juga menempelkan di bawah potongan kecil yang dapat Anda tambahkan ke ~/.bashrcfile Anda (atau yang setara) untuk memastikan bahwa agen SSH Anda dimulai pada login Anda.

Bagaimanapun, ini adalah kesalahan konyol yang saya buat, tetapi mempostingnya di sini, kalau-kalau itu membantu seseorang menghemat waktu dari menggonggong pohon yang salah, seperti yang saya lakukan.

# Start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."

    # Spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi


Cukup yakin Anda kehilangan satu baris dalam kode di atas - sesuai stackoverflow.com/a/18915067/277023 yang perlu Anda milikiSSH_ENV="$HOME/.ssh/environment"
kellyfj

20
git config credential.helper store

Catatan: Meskipun ini mudah, Git akan menyimpan kredensial Anda dalam teks yang jelas dalam file lokal (.git-kredensial) di bawah direktori proyek Anda (lihat di bawah untuk direktori "home"). Jika Anda tidak suka ini, hapus file ini dan alihkan untuk menggunakan opsi cache.

Jika Anda ingin Git melanjutkan untuk meminta kredensial setiap kali perlu terhubung ke repositori jarak jauh, Anda dapat menjalankan perintah ini:

git config --unset credential.helper

Untuk menyimpan kata sandi di .git-kredensial di direktori% HOME% Anda sebagai lawan dari direktori proyek: gunakan flag --global

git config --global credential.helper store

9

Panduan untuk Git di Windows dan GitHub menggunakan SSH untuk mendorong / menarik: Panduan Illustrated untuk Git di Windows

  1. Unduh dan pasang Putty
  2. Setel variabel lingkungan 'GIT_SSH' = 'path \ to \ plink.exe' (dalam folder dempul yang diinstal) - sangat penting !!!
  3. Mulai ulang Windows Explorer agar variabel lingkungan berlaku (tidak hanya dapat memulai kembali perintah prompt)
  4. Jalankan puttygen.exe untuk menghasilkan kunci baru, salin kunci publik ke situs GitHub
  5. Simpan kunci pribadi baru ini di tempat yang aman di disk (lebih disukai bukan Dropbox )
  6. Jalankan putty.exe dan hubungkan SSH ke github.co
  7. Buka folder startup dengan cepat dengan menjalankan "shell: startup".
  8. Buat startup kunci pribadi Anda dengan Windows melalui kontes. Buat pintasan di folder Startup dengan sintaks "path \ to \ pageant.exe" "path \ to \ privatekey"
  9. Kita tidak perlu mengatur pengaturan 'puttykeyfile' di dalam .git / config dari repositori kami
  10. Sangat penting adalah bahwa "URL klon SSH" dari GitHub digunakan dan bukan HTTPS.

Seharusnya tidak ada yang menggunakan dempul lagi. Anda dapat melakukan semuanya sekarang dengan utilitas bawaan Windows 10. Biarkan dempul, hanya dempul.
Ian Smith

9

Di Windows for Git 1.7.9+, jalankan perintah berikut pada prompt perintah untuk membuka file konfigurasi di editor teks:

    git config --global --edit

Kemudian dalam file, tambahkan blok berikut jika tidak ada atau edit sesuai:

    [credential "https://giturl.com"]
        username = <user id>
         helper = wincred

Simpan dan tutup file. Anda harus memberikan kredensial hanya sekali setelah perubahan di atas.


ini bekerja dengan sempurna, Anda menghemat waktu saya, sekarang saya dapat berkonsentrasi pada pekerjaan saya, Terima kasih banyak Saudara.
Mohammed Sufian

9

Gunakan perintah berikut untuk menambah periode waktu habis sehingga Anda dapat mengetik ulang kata sandi untuk sementara waktu

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

Saya menggunakannya untuk Bitbucket dan GitHub berfungsi untuk keduanya. Satu-satunya hal yang perlu Anda lakukan 3600adalah dalam hitungan detik. Tingkatkan sejauh apa pun yang Anda inginkan. Saya mengubahnya menjadi 259200sekitar 30 hari. Dengan cara ini saya memasukkan kembali kata sandi saya untuk setiap 30 hari atau lebih.


1
Ok, saya menemukan bahwa ini tidak bertahan setelah restart, jadi Anda masih perlu memasukkan kata sandi setelah restart, terlepas dari batas waktu ...
Ben Winding

Ini adalah cara yang bagus untuk membuat dalam cache :) Setidaknya menghemat waktu saya. Terima kasih
ChikuMiku

@BenWinding karena menyimpan kredensial dalam memori.
z3dd

5

Saya kira Anda sudah memperbaiki masalah Anda, tetapi saya tidak melihat solusi di sini yang membantu saya, jadi inilah dia.

Ketik terminal:

echo "" > ~/.ssh/known_hosts

Itu akan mengosongkan known_hostsfile Anda , dan Anda harus menambahkan setiap host yang Anda gunakan dan telah terhubung, tetapi itu memecahkan masalah.


1
cat /dev/null > ~/.ssh/known_hostsakan melakukan hal yang sama.
the Tin Man

5
> ~/.ssh/known_hostsbahkan lebih pendek :)
Collin Allen

rm ~ / .ssh / known_hosts juga harus melakukan pekerjaan itu. Saya akan menyarankan menentang ini.
orkoden

3
Jika Anda perlu menghapus sebuah host dari ~ / .ssh / known_hosts, ada cara yang kurang berdampak daripada menghapus file. ~ / .ssh / known_hosts hanyalah file teks dan jika Anda dapat menemukan host yang menyinggung dalam file, Anda bisa menghapus baris mereka. Anda mungkin ingin mencadangkan file sebelum mengeditnya. Jika Anda hanya memiliki beberapa entri dalam file, maka menghapusnya mungkin bukan ide yang buruk. Saya bekerja di banyak server sehingga ~ / .ssh / known_hosts saya memiliki ratusan entri di dalamnya dan saya tidak siap untuk menghapus semuanya untuk menghapus beberapa entri.
Tim Stewart

3
@papan Ini tidak mencegah git untuk menanyakan kata sandi saya!
IgorGanapolsky

5

Saya merasa seperti jawaban yang diberikan oleh static_rtti dalam beberapa hal hacky. Saya tidak tahu apakah ini tersedia sebelumnya, tetapi alat Git sekarang menyediakan penyimpanan kredensial.

Mode Cache

$ git config --global credential.helper cache

Gunakan mode "cache" untuk menyimpan kredensial dalam memori selama periode waktu tertentu. Tidak ada kata sandi yang pernah disimpan di disk, dan dihapus dari cache setelah 15 menit.

Mode Toko

$ git config --global credential.helper 'store --file ~/.my-credentials'

Gunakan mode "store" untuk menyimpan kredensial ke file teks biasa pada disk, dan kredensial mereka tidak pernah berakhir.

Saya pribadi menggunakan mode toko . Saya menghapus repositori, mengkloningnya, dan kemudian harus memasukkan kredensial saya sekali.

Referensi: 7.14 Git Tools - Penyimpanan Kredensial


Untuk Windows credential.helper cacheTIDAK berfungsi. Seharusnya begitu git config --global credential.helper wincred.
Paulo Merson

Menyimpannya berhasil dan sekarang memungkinkan saya untuk melakukan perubahan saya tanpa diminta kata sandi sepanjang waktu, Anda seorang penyelamat!
g4ost

Di Linux ini berhasil bagi saya git config --local credential.helper store. Dalam kasus saya, saya menggunakan HTTPS, dengan cara ini saya hanya mengetik nama pengguna / kata sandi satu kali dan setelah itu, kredensial saya digunakan kembali dari ~ / .git-kredensial
CCarlos

3

jawaban orkoden tentang menggunakan gantungan kunci dengan Git di terminal Anda tidak lengkap dan menimbulkan kesalahan. Inilah yang harus Anda lakukan untuk menyimpan nama pengguna dan kata sandi yang Anda masukkan di terminal di gantungan kunci Anda:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

Lalu masuk

git config --global credential.helper osxkeychain

Jika Anda telah melakukan bagian dengan konfigurasi Git sebelum hal-hal keriting, itu tidak masalah; ini akan bekerja.


1
Bagaimana jika saya di linux.
IgorGanapolsky

3

Seperti static_rtti katakan di atas, ubah

https://github.com/username/repo.git
git://github.com/username/repo.git

untuk

ssh://git@github.com/username/repo.git

Saya sendiri mengubah httpsfile .git / config menjadi ssh, tetapi masih tidak berfungsi. Lalu saya melihat bahwa Anda harus berubah github.commenjadi git@github.com. Cara yang baik untuk mendapatkan URL yang benar adalah pergi ke halaman proyek Anda dan klik ini:

Ubah HTTPS ke SSH untuk mendapatkan URL yang benar

Kemudian tambahkan URL ini ke file konfigurasi.


Saya sudah memilikinya di file konfigurasi config saya, apa lagi yang harus saya periksa?
cyber8200

Apakah Anda mengubahnya di github.com juga?
CheesusCrust

3

Pada Windows Subsystem untuk Linux (WSL) ini adalah satu-satunya solusi yang saya temukan berfungsi:

eval `ssh-agent` ; ssh-add ~/.ssh/id_rsa

Itu adalah masalah dengan ssh-agent tidak terdaftar dengan benar di WSL.


Dulu whlie, tapi ini yang memperbaiki masalah saya.
Nam Kim

3

Jika Anda ingin menghentikan Git agar selalu meminta kredensial masuk dari repositori GitHub Anda, ini bisa dilakukan dengan mudah.

Menggunakan SSH bukan HTTPS

Anda dapat memperbarui remote asal menggunakan SSH daripada HTTPS "

git remote set-url origin git@github.com:username/your-repo.git

Konfigurasikan Git untuk Menyimpan Kata Sandi dan Nama Pengguna Anda

Inilah cara Anda membuat Git menyimpan nama pengguna dan kata sandi:

git config --global credential.helper store

Selanjutnya, simpan nama pengguna dan kata sandi untuk satu sesi:

git config --global credential.helper cache

2

Saya setuju dengan "codehugger" dan menggunakan instruksi "orkoden" itu berfungsi untuk saya - di NetBeans 7.3 - ketika Anda mengklik kanan pada file dan memilih menu konteks - push - a 'push to remote' window dibuka - ada dua pilihan di sini:

  1. origin:https://github.com/myaccount/myproject.git/

  2. https://github.com/myaccount/myproject.git/

Seperti yang Anda lihat, perbedaannya adalah parameter asal di URL - Anda tidak ingin memilih opsi ini (1) Anda ingin memeriksa opsi (2), dan itu berfungsi dengan baik untuk saya.


2

Langkah 1: periksa konfigurasi Anda saat ini

cat .git/config

Kamu akan mendapatkan:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/path_to_your_git.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = your_username
    email = your_email
[branch "master-staging"]
    remote = origin
    merge = refs/heads/master-staging

Langkah 2: hapus asal remote Anda

git remote rm origin

Langkah 3: tambahkan asal yang jauh dengan nama pengguna dan kata sandi Anda

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

Setelah Anda menambahkan asal remote lagi Anda juga perlu menyelaraskan cabang Anda jauh dan lokal - sesuatu seperti ini: git branch --set-upstream master origin/master
Richard Bown

2

Jika Git meminta nama pengguna dan kata sandi setiap kali Anda mencoba berinteraksi dengan GitHub, Anda mungkin menggunakan URL klon HTTPS untuk repositori Anda.

Menggunakan HTTPS remote URL memiliki beberapa keuntungan: lebih mudah diatur daripada SSH, dan biasanya bekerja melalui firewall dan proxy yang ketat. Namun, itu juga meminta Anda untuk memasukkan kredensial GitHub Anda setiap kali Anda menarik atau mendorong repositori.

Anda dapat mengkonfigurasi Git untuk menyimpan kata sandi Anda. Untuk Windows :

git config --global credential.helper wincred

2

Menjalankan macOS Cataline 10.15, metode caching gantungan kunci tidak berfungsi untuk saya. Dan saya ingin https://tidak menggunakannyassh

Inilah yang bekerja untuk saya:

git remote rm origin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

Ini juga bisa digunakan pada GitLab

Pastikan jika nama pengguna berisi alamat email, untuk menghapus @emailbagian atau Anda akan mendapatkan kesalahan yang menyatakan URL using bad/illegal format or missing URL.

Semoga ini membantu!


1
Ini adalah solusi HANYA yang bekerja untuk saya. nama_git_Anda sangat penting. Sebenarnya itu tidak perlu dimasukkan: your_git_password. Pada titik ini, meskipun masih meminta "frasa sandi", sekarang kata sandi itu akan diterima.
kbulgrien

1

Ada berbagai jenis otentikasi tergantung pada konfigurasi Anda. Berikut ini beberapa di antaranya:

  1. git credential-osxkeychain.

    Jika kredensial Anda tidak valid, hapus dengan:

      git credential-osxkeychain erase
    

    atau:

      printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
    

    Jadi Git tidak akan meminta izin gantungan kunci lagi. Kemudian konfigurasikan lagi.

    Lihat: Memperbarui kredensial dari Keychain OS X di GitHub

  2. Kunci SSH RSA Anda.

    Untuk ini, Anda perlu membandingkan kunci SSH Anda dengan apa yang Anda tambahkan, periksa dengan ssh-add -L/ ssh-add -ljika Anda menggunakan identitas yang benar.

  3. Otentikasi HTTPS Anda (jika Anda menggunakan httpsalih-alihssh protokol).

    Gunakan ~/.netrc( %HOME%/_netrcpada Windows), untuk memberikan kredensial Anda, mis

      machine stash1.mycompany.com
      login myusername
      password mypassword
    

Pelajari lebih lanjut: Menyinkronkan dengan GitHub di Stack Overflow.





0

Solusi Microsoft Stack (Windows dan Azure DevOps)

Pertama buka .git/configfile untuk memastikan alamatnya terlihat seperti:

protocol://something@url

Misalnya .git / config untuk Azure DevOps:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

Jika masalah masih berlanjut, buka Windows Credential Manager , klik pada kotak penyimpanan bernama Windows Credentials dan hapus semua kredensial terkait git.

Sekarang saat berikutnya Anda masuk ke git, itu tidak akan hilang lagi.


0

Jika Anda memiliki pengaturan agen SSH, Anda juga dapat menambahkan ini ke Anda ~/.gitconfiguntuk memaksa git menggunakan SSH untuk semua repositori GitHub daripada HTTPS:

[url "ssh://git@github.com/"]
    insteadOf = git://github.com/
    insteadOf = https://github.com/

(Jika Anda sebagian besar bekerja dengan repo publik, Anda juga dapat menggunakan pushInsteadOfdaripada insteadOf, karena membaca dari repo publik dapat dilakukan tanpa otentikasi).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.