Repos GitHub ที่โคลนขอรหัสผ่านในขณะที่สร้างขึ้น แต่เดิมไม่


9

ฉันเพิ่งสูญเสียแหล่งเก็บข้อมูลมากมายจากดิสก์ของฉันดังนั้นฉันจึงโคลนพวกเขาจาก GitHub ตอนนี้กำลังขอชื่อผู้ใช้และรหัสผ่านทุกครั้งที่ฉันส่งบางสิ่งไปยัง GitHub สิ่งที่ไม่ถูกลบอย่าทำอย่างนั้น
ทางออกเดียวที่ฉันได้อ่านเพื่อกำจัดชื่อผู้ใช้ / รหัสผ่านคือการสร้างคีย์ ssh สิ่งนี้คือฉันมีคีย์อยู่แล้วไม่เช่นนั้นฉันจะกดไม่ได้โดยไม่แจ้งใน repos เหล่านั้นว่าฉันไม่ได้โคลน

ฉันดูที่git configเก็บของฉันสองแห่งโดยที่ฉันสามารถกดได้โดยไม่ต้องใช้รหัสผ่านและที่ที่ฉันโคลน ความแตกต่างเพียงอย่างเดียวคือbranch.master.remoteและbranch.master.mergeการตั้งค่าซึ่งฉันไม่ได้ตั้งค่าทำgit configแบบเดียวกัน แต่พรอมต์ยังคงอยู่ที่นั่น

ฉันไม่แน่ใจด้วยซ้ำว่าการสร้างคีย์ ssh ใหม่จะใช้งานได้ ตัวเลือกของฉันคืออะไร?


โปรดดูhelp.github.com/ssh-issuesและให้รายละเอียดเพิ่มเติม จะเกิดอะไรขึ้นเมื่อคุณพยายามที่จะ SSH

คำตอบ:


21

ฉันเดา:

ที่เก็บเก่าของคุณใช้รีโมท SSH ( git@github.com:หรือssh://git@github.com/คำนำหน้า) ซึ่งใช้การตรวจสอบคีย์สาธารณะ (อันที่จริงแล้วเซิร์ฟเวอร์ Github SSH ไม่เคยขอรหัสผ่าน)

ที่เก็บใหม่ของคุณใช้ HTTP remotes ( ) ซึ่งรองรับเฉพาะการรับรองความถูกต้องHTTP พื้นฐานที่ใช้รหัสผ่านและไม่ใช้คีย์ SSH ของคุณhttps://username@github.com/

เปลี่ยน URL ระยะไกลของคุณเพื่อใช้ SSH อีกครั้ง ใช้git remote set-urlหรือแก้ไข.git/configเพื่อทำสิ่งนี้ แทนที่

https: // ชื่อผู้ใช้ @ github.com / ชื่อผู้ใช้ /repo.git

ด้วยเพียง

git@github.com: ชื่อผู้ใช้ /repo.git

คุณสามารถมีรายการ~/.gitconfigที่บอกให้ git แปล URL ระยะไกลจาก HTTP หรือ Git เป็น SSH

ด้วยวิธีนี้หากที่เก็บข้อมูลของคุณได้รับการกำหนดค่าสำหรับ HTTP หรือ Git จากระยะไกล Git จะเพิกเฉยต่อการตั้งค่านั้นเมื่อกดและจะใช้ SSH แทน

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

(การinsteadOf =ตั้งค่ายังเป็นไปได้เพื่อแทนที่ทั้งการดึงและการกด)

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