ฉันจะปิดใช้งานการแจ้งรหัสผ่านเมื่อทำการ git push / pull ได้อย่างไร


34

ทุกครั้งที่ฉันต้องการpushและ / หรือpullจากเทอร์มินัล (ใน Linux) ฉันต้องใส่รหัสผ่าน ฉันจะลบสิ่งนี้เพื่อดึงและ / หรือพุชโดยไม่มีรหัสผ่านได้อย่างไร


5
โปรโตคอลใช้ที่อยู่ repo ของคุณคืออะไร? SSH? https?
VonC

คำตอบ:


23

สร้างคู่คีย์ส่วนตัว / สาธารณะสำหรับการตรวจสอบรหัสผ่านที่น้อยกว่า

สำหรับลินุกซ์, ~/.sshกุญแจของคุณจะถูกเก็บไว้ใน

หากคุณมีไฟล์อยู่ใน~/.sshชื่อid_rsaและid_rsa.pubคุณมีคู่กุญแจอยู่แล้ว ต่อท้ายเนื้อหาของกุญแจสาธารณะของคุณ (นั่นคือid_rsa.pub) ไปยังไฟล์ ~ / .ssh / authorized_keys ของที่เก็บ Git

$ scp ~/.ssh/id_rsa.pub user@git.repo:id_rsa.tmp
$ ssh user@git.repo
$ cat id_rsa.tmp >> .ssh/authorized_keys

หากคุณไม่มีคู่คีย์ให้สร้างด้วย

$ ssh-keygen -t rsa

อ่านคำแนะนำเพิ่มเติมนี้: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/


@slhck อ่าไม่ได้คิดอย่างนั้น! มันเป็นการดีที่จะรู้ว่าระบบปฏิบัติการที่ใช้อยู่ก่อนโพสต์คำแนะนำเพิ่มเติม
จิน

ขอบคุณสำหรับตัวชี้ ฉันได้อัปเดตคำถามตาม!
whirlwin

1
เมื่อฉันเรียกใช้คำสั่งแรกที่ฉันได้รับ: คุณดูเหมือนจะใช้ ssh เพื่อโคลน git: // URL ตรวจสอบให้แน่ใจว่าตัวเลือกการกำหนดค่า core.gitProxy ของคุณและตัวแปรสภาพแวดล้อม GIT_PROXY_COMMAND ไม่ได้ถูกตั้งค่า ขาดการเชื่อมต่อ
MultiformeIngegno

25

วิ่ง

git config credential.helper store

สิ่งนี้จะจัดเก็บข้อมูลรับรองของคุณไว้ในโฟลเดอร์ภายในรูท คุณต้องรัน git pull / push หลังจากคำสั่งนี้และให้ชื่อผู้ใช้ / pwd เป็นครั้งแรก โพสต์สิ่งนี้มันจะไม่พร้อมท์สำหรับผู้ใช้ / pwd รายละเอียดที่https://git-scm.com/docs/git-credential-store


4
ควรเลือกสิ่งนี้เป็นคำตอบที่ถูกต้องสำหรับคำถามนี้ IMO, OP ต้องการถามเกี่ยวกับวิธีแก้ปัญหาhttpsเพื่อหลีกเลี่ยงการป้อนชื่อผู้ใช้ / รหัสผ่านซ้ำแล้วซ้ำอีกไม่ใช่เปลี่ยนไปใช้sshโซลูชัน 1+ สำหรับคำตอบนี้
Giang Nguyen

1
โปรดทราบว่าตัวช่วยการจัดเก็บข้อมูลประจำตัวจะจัดเก็บรหัสผ่านไว้ในดิสก์ที่ไม่ได้เข้ารหัส
0xc0de

6

คุณสามารถเปลี่ยนข้อความรหัสผ่านและแทนที่ด้วยสตริงว่างได้:
ssh-keygen -p


3
มันไม่ผิดหรอกเหรอ? เพราะจะไม่มีการรักษาความปลอดภัยอีกต่อไป
ตัส

3
ขอขอบคุณ. นี่คือการแก้ไขสำหรับผู้ที่มีการตั้งค่าคีย์ SSH แต่ไม่แน่ใจว่าทำไมพวกเขายังต้องป้อนข้อความรหัสผ่าน
คอรีแดเนียล

การใช้ ssh-agent เป็นทางเลือกที่ปลอดภัยกว่านี้ superuser.com/questions/426749/ssh-agent-and-ssh-add
Jay R. Wren

1

ฉันสร้างสาขาใหม่และหลังจากนั้นเมื่อฉันดึงฉันต้องป้อนชื่อผู้ใช้และรหัสผ่าน จากนั้นฉันแก้ไขปัญหาการโคลนสาขาอีกครั้งด้วยที่อยู่ ssh (ซึ่งอยู่บนไซต์ที่เก็บข้อมูลที่เกี่ยวข้อง)

ตัวอย่างเช่น:

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