Bagaimana Anda mengatur ulang kredensial yang disimpan di 'git credential-osxkeychain'?

98

Saya telah mengikuti petunjuk GitHub untuk menyiapkan akun saya, dan saya dapat mengkloning, tetapi saya tidak dapat mendorong dari jarak jauh.

Saat saya melakukan "git push", saya mendapatkan error 403. Ini memiliki URL yang benar. Saya mencoba "git credential-osxkeychain get" untuk melihat apa yang diberikannya, dan ini mencetak kredensial yang salah.

Saya percaya apa yang terjadi adalah pertama kali meminta kredensial, saya pikir itu adalah aplikasi lain yang menanyakan, dan itu memasukkan yang salah.

Saya hanya perlu mengatur ulang agar menggunakan item rantai kunci yang benar untuk akun GitHub saya.

Saya sudah mencoba:

git credential-osxkeychain erase
git credential-osxkeychain set

Program tidak pernah memberikan petunjuk apa pun. Set akan mengatakan "masukan buruk" jika saya tidak melakukan hal yang benar. Saya mencoba memasukkan " password=password", dll., Tetapi ketika saya melakukan "get", saya masih mendapatkan yang lama.

Saya tidak tahu di mana ini disimpan, karena tidak ada di .gitconfigure. Selanjutnya tidak ada item gantungan kunci terbaru yang bisa jadi itu. (Saya memiliki beberapa akun GitHub di rantai kunci saya dan tidak menggunakan salah satu pun.)

nirwana
sumber
Terkait, kredensial pembantu agnostik: stackoverflow.com/questions/21745213/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Kemungkinan sama di Windows: stackoverflow.com/questions/15381198/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Jawaban:

124

Dari Terminal:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

CATATAN: setelah Anda memasukkan "protocol = https" di atas Anda perlu menekan ~~ RETURN ~~ DUA KALI

maz
sumber
2
Untuk beberapa alasan saya tidak dapat menemukan kredensial Git / GitHub di dalam aplikasi Keychain, tetapi ini berhasil. Terima kasih!
Donald
4
Karena ini tidak jelas bagi saya: Anda harus memasukkan semua 3 baris di atas, lalu tekan kembali lagi - yaitu baris 2/3 di atas bukan keluaran dari perintah, tetapi masukan.
Frederik
Jawaban ini membantu saya. Terima kasih banyak!
Ken Flake
70

Saya tidak yakin cara menghapus melalui baris perintah, tetapi cukup mudah melakukannya melalui aplikasi Keychain Access. Cukup buka Aplikasi -> Utilties -> Akses Keychain, lalu masukkan "github.com". Anda dapat menghapus item yang tidak valid atau memperbarui kata sandi dari dengan aplikasi.

benzado
sumber
4
Jika seseorang membaca ini mengetahui bagaimana melakukannya dari baris perintah, akan senang mengetahuinya.
funroll
1
@funroll Alat baris perintah adalah security. Halaman manual menyatakan memiliki delete-internet-passwordperintah.
benzado
Terima kasih atas pembaruannya, saya yakin itu akan berguna bagi seseorang.
funroll
ini adalah solusi terbaik
Elias Fazel
Dari gantungan kunci yang mana?
Bryan Bryce
29

Solusinya ternyata begini:

Perintahnya git credential-osxkeychainmenggunakan entri akun GitHub pertama di rantai kunci saya. Orang ini bukanlah orang yang memiliki akses ke proyek yang dimaksud.

Saya menyelesaikan masalah dengan menyentuh akun di Akses Keychain sehingga tanggalnya berubah (saya pikir saya baru saja mengubah komentar) dan sekarang menjadi akun GitHub terbaru, itu menjadi yang pertama kembali ke kredensial-osxkeychain, dan dengan demikian semuanya berfungsi .

Bentuk dukungan yang lebih baik untuk beberapa akun GitHub akan menyenangkan, tetapi kemungkinan besar kebanyakan orang hanya memiliki satu akun utama dan tidak mengalami masalah ini.

nirwana
sumber
2
Saya tidak yakin bagaimana ini berfungsi untuk beberapa pengguna di host yang sama, tetapi Anda mungkin memeriksa ssh dan menggunakan ~/.ssh/configfile daripada menggunakan OSX Keychain. Ini digunakan dalam kasus di mana Anda mungkin memiliki beberapa kunci ssh untuk host yang berbeda (dan akun think juga). nerderati.com/2011/03/17/…
jusopi
10

git-credential-osxkeychain menyimpan kata sandi di Apple Keychain, seperti disebutkan di atas.

Secara default, gitcredentials hanya mempertimbangkan nama domain. Jika Anda ingin Git mempertimbangkan jalur lengkap (mis. Jika Anda memiliki beberapa akun GitHub), setel useHttpPathvariabel ke true, seperti dijelaskan di http://git-scm.com/docs/gitcredentials.html . Perhatikan bahwa mengubah pengaturan ini akan meminta kredensial Anda lagi untuk setiap URL.

MacFreek
sumber
7

Di Mac, gunakan perintah git credential-osxkeychain erase.

ATAU hapus secara manual dari rantai kunci dari Applications- > Utilities- > Keychain Access . Kemudian hapus rantai kunci github.com. Kemudian gunakan push; itu akan meminta akses rantai kunci; lalu tolak.

Ini akan meminta nama pengguna dan kata sandi baru, menambahkannya kemudian mendorong file untuk itu.

Setelah git pushsaya menemukan kesalahan ini. Kemudian saya menggunakan huruf besar- masalah:

remote: Izin untuk pengguna1 / file.git ditolak untuk pengguna2 (pengguna yang sebelumnya ada). fatal: tidak dapat mengakses ' https://github.com/xxxxxxxxxxxx/ ': URL yang diminta menghasilkan kesalahan: 403

Amit kumar
sumber
6

Coba lari /Applications/Utilities/Keychain Access.

echristopherson
sumber