คุณรีเซ็ตข้อมูลรับรองที่จัดเก็บไว้ใน 'git credential-osxkeychain' ได้อย่างไร?


105

ฉันทำตามคำแนะนำของ GitHub ในการตั้งค่าบัญชีของฉันและฉันสามารถโคลนได้ แต่ฉันไม่สามารถผลักดันจากระยะไกลได้

เมื่อฉันทำการ "git push" ฉันได้รับข้อผิดพลาด 403 มี URL ที่ถูกต้อง ฉันลองใช้ "git credential-osxkeychain get" เพื่อดูว่ามันให้อะไรและสิ่งนี้พิมพ์ข้อมูลรับรองผิด

ฉันเชื่อว่าสิ่งที่เกิดขึ้นเป็นครั้งแรกที่ขอข้อมูลรับรองฉันคิดว่าเป็นแอปพลิเคชันอื่นที่ถามและใส่ผิด

ฉันต้องรีเซ็ตมันเพื่อให้ใช้รายการพวงกุญแจที่ถูกต้องสำหรับบัญชี GitHub ของฉัน

ฉันพยายามแล้ว:

git credential-osxkeychain erase
git credential-osxkeychain set

โปรแกรมไม่เคยแจ้งใด ๆ Set จะบอกว่า "อินพุตไม่ถูกต้อง" หากฉันทำสิ่งที่ไม่ถูกต้อง ฉันลองใส่ " password=password" ฯลฯ แต่เมื่อฉันทำการ "รับ" ฉันก็ยังได้ตัวเก่า

ฉันคิดไม่ออกว่าสิ่งเหล่านี้ถูกเก็บไว้ที่ไหนเนื่องจากไม่ได้อยู่ใน. gitconfigure นอกจากนี้ยังไม่มีรายการพวงกุญแจล่าสุดที่อาจเป็นได้ (ฉันมีบัญชี GitHub หลายบัญชีในพวงกุญแจและไม่ได้ใช้บัญชีใด ๆ เลย)


ที่เกี่ยวข้องผู้ช่วยข้อมูลรับรองไม่เชื่อเรื่องพระเจ้า: stackoverflow.com/questions/21745213/…
Ciro Santilli 郝海东冠状病六四事件法轮功


คำตอบ:


129

จาก Terminal: (คุณต้องป้อนสามบรรทัดต่อไปนี้)

 $ git credential-osxkeychain erase ⏎
 host=github.com  ⏎
 protocol=https   ⏎
 ⏎
 ⏎

หมายเหตุ: หลังจากที่คุณป้อน "protocol = https" ด้านบนคุณจะต้องกด ~~ RETURN ~~ TWICE (แต่ละ '⏎' จะเทียบเท่ากับ 'กด Enter / return')


3
ด้วยเหตุผลบางประการฉันไม่พบข้อมูลรับรอง Git / GitHub ใด ๆ ในแอปพวงกุญแจ แต่ก็ใช้ได้ ขอบคุณ!
โดนัลด์

5
เนื่องจากสิ่งนี้ไม่ชัดเจนสำหรับฉัน: คุณต้องป้อนทั้ง 3 บรรทัดด้านบนจากนั้นกด return อีกครั้งนั่นคือบรรทัดที่ 2/3 ด้านบนไม่ใช่เอาต์พุตจากคำสั่ง แต่เป็นอินพุต
Frederik

คำตอบนี้ช่วยฉัน ขอบคุณมาก!
Ken Flake

72

ฉันไม่แน่ใจว่าจะลบผ่านบรรทัดคำสั่งอย่างไร แต่มันค่อนข้างง่ายที่จะทำผ่านแอพ Keychain Access เพียงไปที่ Applications -> Utilties -> Keychain Access จากนั้นป้อน "github.com" คุณสามารถลบรายการที่ไม่ถูกต้องหรืออัปเดตรหัสผ่านจากแอป


4
หากมีคนอ่านตัวเลขนี้วิธีการทำจากบรรทัดคำสั่งจะดีที่ได้รู้
funroll

1
@funroll เครื่องมือบรรทัดคำสั่งคือsecurity. หน้าคนระบุว่ามีdelete-internet-passwordคำสั่ง
benzado

ขอบคุณสำหรับการอัปเดตฉันมั่นใจว่าจะเป็นประโยชน์กับใครบางคน
funroll

นี่คือทางออกที่ดีที่สุด
Elias Fazel

พวงกุญแจจากไหน
Bryan Bryce

30

การแก้ปัญหากลายเป็นดังนี้:

คำสั่งgit credential-osxkeychainใช้รายการบัญชี GitHub แรกในพวงกุญแจของฉัน อันนี้ไม่ใช่โครงการที่เข้าถึงโครงการที่มีปัญหา

ฉันแก้ไขปัญหาโดยแตะบัญชีในการเข้าถึงพวงกุญแจเพื่อให้วันที่เปลี่ยนไป (ฉันคิดว่าฉันเพิ่งเปลี่ยนความคิดเห็น) และตอนนี้มันกลายเป็นบัญชี GitHub ล่าสุดมันกลายเป็นบัญชีแรกที่กลับไปที่ credential-osxkeychain และทำให้ทุกอย่างทำงานได้ .

รูปแบบการรองรับที่ดีกว่าสำหรับบัญชี GitHub หลายบัญชีน่าจะดี แต่คนส่วนใหญ่มีบัญชีหลักเพียงบัญชีเดียวและไม่ประสบปัญหานี้


2
ฉันไม่แน่ใจว่าวิธีนี้ใช้ได้กับผู้ใช้หลายคนในโฮสต์เดียวกัน แต่คุณอาจลองใช้ ssh และใช้~/.ssh/configไฟล์แทนการใช้ OSX Keychain ใช้ในกรณีที่คุณอาจมีคีย์ ssh หลายคีย์สำหรับโฮสต์ที่แตกต่างกัน (และคิดบัญชีด้วย) nerderati.com/2011/03/17/…
jusopi

10

git-credential-osxkeychain เก็บรหัสผ่านไว้ในพวงกุญแจ Apple ตามที่ระบุไว้ข้างต้น

ตามค่าเริ่มต้น gitcredentials จะพิจารณาเฉพาะชื่อโดเมน หากคุณต้องการที่จะต้องพิจารณา Git เส้นทางแบบเต็ม (เช่นหากคุณมีบัญชีหลาย GitHub) ตั้งค่าuseHttpPathตัวแปรtrueตามที่อธิบายไว้ในhttp://git-scm.com/docs/gitcredentials.html โปรดทราบว่าการเปลี่ยนการตั้งค่านี้จะถามข้อมูลรับรองของคุณอีกครั้งสำหรับแต่ละ URL


7

บน Mac git credential-osxkeychain eraseใช้คำสั่ง

หรือลบด้วยตนเองจากพวงกุญแจจากโปรแกรมสาธารณูปโภคKeychain Access จากนั้นนำพวงกุญแจ github.com ออก จากนั้นใช้ดัน; มันจะขอการเข้าถึงพวงกุญแจ แล้วปฏิเสธ

มันจะถามชื่อผู้ใช้และรหัสผ่านใหม่เพิ่มจากนั้นดันไฟล์สำหรับสิ่งนั้น

หลังจากที่git pushฉันพบข้อผิดพลาดนี้ จากนั้นฉันใช้ตัวพิมพ์ใหญ่ - ปัญหา:

ระยะไกล: การอนุญาตให้ user1 / file.git ถูกปฏิเสธให้กับ user2 (ผู้ใช้ที่มีอยู่ก่อนหน้านี้) ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/xxxxxxxxxxxx/ ': URL ที่ร้องขอส่งคืนข้อผิดพลาด: 403



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.