กำลังจัดเก็บชื่อผู้ใช้และรหัสผ่านใน Git


20

เมื่อฉันทำ

git push

ฉันได้รับคำสั่งเช่นนั้น

Username for 'https://github.com':

จากนั้นฉันป้อนชื่อผู้ใช้ด้วยตนเองเช่น

Username for 'https://github.com': myusername

จากนั้นฉันก็กดEnterและฉันจะขอรหัสผ่านให้

Password for 'https://myusername@github.com':

ฉันต้องการให้ชื่อผู้ใช้ถูกเขียนโดยอัตโนมัติแทนที่จะต้องพิมพ์ด้วยตนเองตลอดเวลา

ฉันลองทำด้วยxdotoolแต่มันก็ไม่ได้ผล

ฉันได้ทำไปแล้ว

git config --global user.name myusername
git config --global user.email myemail@gmail.com

แต่ก็ยังขอให้ฉันพิมพ์ด้วยตนเองเสมอ


คุณรู้ไหมว่าคุณสามารถเก็บหนังสือรับรองด้วย git ได้ไหม?
Diego Roccia

คุณควรตั้งค่าคีย์ SSH บน GitHub และใช้สิ่งนั้นแทน
สตีเฟ่น Kitt

@DiegoRoccia ใช่พูดถึงว่าในคำถาม แต่มันไม่ได้ช่วย
GypsyCosmonaut

คุณสามารถใช้ตามที่git config credential.helper storeอธิบายไว้ที่นี่: stackoverflow.com/questions/11403407/… ในกรณีนี้คุณจะไม่เก็บรหัสผ่านเป็นข้อความที่ชัดเจนใน URL ต้นทาง แต่ในไฟล์ในโปรไฟล์ของคุณ (ยังไม่ได้เข้ารหัส)
Oleg Rudenko

คำตอบ:


12

จริงๆแล้วสิ่งที่คุณทำคือการตั้งค่าข้อมูลผู้เขียนเพียงแค่การกระทำ คุณไม่ได้จัดเก็บข้อมูลรับรอง ข้อมูลรับรองสามารถจัดเก็บได้ 2 วิธี:

  1. ใช้ฟังก์ชันข้อมูลรับรอง git: https://git-scm.com/docs/git-credential-store
  2. เปลี่ยน URL ต้นทางเป็น " https: // ชื่อผู้ใช้: password@github.com "
  3. ทางเลือกที่สามคือการใช้คีย์ ssh (ตามที่ @StephenKitt พูด) สำหรับการกำหนดค่า GitHub คุณสามารถค้นหาข้อมูลที่จำเป็นทั้งหมดได้ในหน้าช่วยเหลือของ GitHub

การเพิ่มชื่อผู้ใช้และรหัสผ่านไปยัง URL ต้นทางนั้นไม่ดีเนื่องจากเหตุผลด้านความปลอดภัย แต่ถ้าคุณรู้สึกว่าตัวเองปลอดภัยแล้วนี่เป็นเส้นทางที่ดีที่สุด
kodmanyagha

22

ในเทอร์มินัลป้อนต่อไปนี้เพื่อเปิดใช้งานหน่วยความจำข้อมูลรับรอง:

$ git config --global credential.helper cache

คุณสามารถอัปเดตการหมดเวลาแคชรหัสผ่านเริ่มต้น (เป็นวินาที):

# This cache timeout is in seconds
$ git config --global credential.helper 'cache --timeout=3600' 

นอกจากนี้คุณยังสามารถใช้ (แต่โปรดใช้เครื่องหมายคำพูดเดี่ยวๆ , อัญประกาศคู่อื่นอาจแตกสำหรับบางตัวอักษร)

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