Visual Studio Code จะขอข้อมูลประจำตัว git เสมอ


218

ฉันเริ่มใช้รหัส Visual StudioและฉันพยายามบันทึกโครงการทดสอบของฉันลงในGitHubแต่Visual Studio Codeมักจะขอข้อมูลประจำตัวGitHubของฉัน

ฉันได้ติดตั้งในพีซีGitHub DesktopของฉันและGitแล้วฉันก็วิ่งไปแล้ว:

 git config --global credential.helper wincred

แต่รหัส Visual Studioยังคงขอข้อมูลประจำตัว

ความช่วยเหลือใด ๆ

นี่คือไฟล์. gitconfigของฉันที่อยู่ในฟอรัมโปรไฟล์ผู้ใช้:

    [filter "lfs"]
    clean = git-lfs clean %f
    smudge = git-lfs smudge %f
    required = true
[user]
    name = ddieppa
[user]
    email = fake@live.com
[credential]
    helper = wincred

นี่คือหน้าต่างป๊อปอัปที่ขอข้อมูลประจำตัว:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันป้อนข้อมูลรับรองGitHubของฉันในป๊อปอัป แต่ยังคงได้รับข้อผิดพลาดนี้ในหน้าต่างผลลัพธ์GitในVisual Studio Code :

remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'

คุณใช้ GItHub URL ใดอยู่ HTTP หรือ GIT (SSH)? หากคุณใช้ HTTP URL คุณต้องระบุผู้ใช้และรหัสผ่านใน URL คุณควรใช้ GIT URL และเพิ่มคีย์ SSH สาธารณะของคุณในรายการคีย์ SSH ของผู้ใช้
yorammi

@yorammi ฉันทำงานใหม่กับ git ดังนั้นฉันจึงติดตั้ง Github Desktop และ Git และพยายามบันทึกโครงการของฉันโดยใช้ Visual Studio Code ดังนั้นฉันไม่รู้ว่าฉันกำลังทำอะไรอยู่ ฉันจะรู้ได้อย่างไร
ddieppa

@ddieppa GitHub Desktop มีวิธีการทำงานกับการรับรองความถูกต้องด้วยสองปัจจัยด้วยการเชื่อมต่อ https อย่างไรก็ตามนั่นเป็นการทำลายเครื่องมืออื่น ๆ เช่นเดียวกับคำตอบที่บอกว่าคุณต้องเปลี่ยน URL ต้นทางจาก https เป็น ssh
Lex Li

คำตอบ:


159

อัปเดตครั้งล่าสุด: 05 มีนาคม 2019

หลังจาก 98 upvotes ฉันคิดว่าฉันต้องให้คำตอบที่แท้จริงกับคำอธิบาย

ทำไมรหัส VS ขอรหัสผ่าน? เนื่องจาก VSCode ใช้งานคุณสมบัติดึงข้อมูลอัตโนมัติในขณะที่เซิร์ฟเวอร์ git ไม่มีข้อมูลใด ๆ ที่จะอนุญาตข้อมูลประจำตัวของคุณ มันเกิดขึ้นเมื่อ:

  • repo git ของคุณมีhttpsURL ระยะไกล ใช่ รีโมทชนิดนี้จะถามคุณทุกครั้งอย่างแน่นอน ไม่มีข้อยกเว้นที่นี่! (คุณสามารถทำเคล็ดลับชั่วคราวเพื่อแคชการให้สิทธิ์เป็นโซลูชันด้านล่าง แต่ไม่แนะนำให้ทำ)
  • repo git ของคุณมีsslURL ระยะไกล แต่คุณไม่ได้คัดลอกกุญแจสาธารณะ ssh ไปยังเซิร์ฟเวอร์ git ใช้ssh-keygenเพื่อสร้างคีย์ของคุณและคัดลอกไปยังเซิร์ฟเวอร์ git ทำ! โซลูชันนี้ยังช่วยให้คุณไม่ต้องพิมพ์รหัสผ่านซ้ำบนเทอร์มินัลอีกครั้ง ดูคำแนะนำที่ดีโดย @Fnatical ที่นี่สำหรับคำตอบ

ส่วนที่ปรับปรุงท้ายคำตอบนี้ไม่ได้ช่วยอะไรคุณเลย (อันที่จริงแล้วมันทำให้คุณหยุดนิ่งในเวิร์กโฟลว์ของคุณ) มันจะหยุดสิ่งที่เกิดขึ้นใน VSCode และย้ายสิ่งที่เกิดขึ้นเหล่านี้ไปยังสถานี

ขออภัยถ้าคำตอบที่ไม่ดีนี้ส่งผลกระทบต่อคุณเป็นระยะเวลานาน

-

คำตอบเดิม (ไม่ดี)

ฉันพบวิธีแก้ปัญหาบนเอกสาร VSCode :

เคล็ดลับ: คุณควรตั้งค่าผู้ช่วยข้อมูลประจำตัวเพื่อหลีกเลี่ยงการถูกขอข้อมูลประจำตัวทุกครั้งที่ VS Code พูดถึงรีโมท Git ของคุณ หากคุณไม่ทำเช่นนี้คุณอาจต้องพิจารณาปิดใช้งานการเรียกอัตโนมัติในเมนู ... เพื่อลดจำนวนการแจ้งเตือนที่คุณได้รับ

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

ใน Terminal ให้ป้อนข้อมูลต่อไปนี้:

git config --global credential.helper cache
# Set git to use the credential memory cache

หากต้องการเปลี่ยนการหมดเวลาแคชรหัสผ่านเริ่มต้นให้ป้อนข้อมูลต่อไปนี้:

git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

UPDATE (หากคำตอบดั้งเดิมไม่ทำงาน)

ฉันติดตั้ง VS Code และตั้งค่าไว้ด้านบน แต่ตามที่ @ddieppa พูดว่ามันไม่ได้ผลสำหรับฉันเช่นกัน ดังนั้นฉันจึงพยายามค้นหาตัวเลือกในการตั้งค่าผู้ใช้และฉันเห็น "git.autofetch" = จริงตอนนี้ตั้งเป็นเท็จ! รหัส VS ไม่จำเป็นต้องใส่รหัสผ่านซ้ำแล้วซ้ำอีก!

ในเมนูคลิกไฟล์ / การตั้งค่า / การตั้งค่าผู้ใช้และพิมพ์สิ่งเหล่านี้:

วางการตั้งค่าของคุณในไฟล์นี้เพื่อเขียนทับการตั้งค่าเริ่มต้น

{
  "git.autofetch": false
}

2
ฉันลองมัน แต่ไม่ได้ผลสำหรับฉันฉันยังใช้สิ่งนี้: $ git config
ddieppa

แม้ว่าโซลูชันการดึงข้อมูลอัตโนมัติจะหยุดปัญหาป๊อปอัปอย่างต่อเนื่อง แต่ก็ยังต้องป้อนข้อมูลรับรองในทุกการพุชและดึง หากใช้พีซีที่มี http / s โซลูชันตัวจัดการข้อมูลรับรองด้านล่างใช้งานได้ดี
ruttopia

3
สิ่งที่ไม่ควรปรากฏขึ้นหากคุณยังไม่ได้เริ่มดำเนินการโดยเฉพาะอย่างยิ่งสิ่งที่ขอข้อมูลประจำตัว - คุณจะรู้ได้อย่างไรว่าสิ่งนี้ปลอดภัยและไม่หลอกลวง
Anthony Johnston

7
โปรดใช้ความระมัดระวังกับการตั้งค่านั้น! มันไม่ได้มีไว้เพื่อช่วยให้คุณจำข้อมูลประจำตัวของคุณเลย กำลังพูดถึงการช่วยเหลือคุณโดยอัตโนมัติ โปรดดูที่atlassian.com/git/tutorials/syncing#git-fetchสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนั้น git config --global credential.helper cacheเท่าที่เก็บข้อมูลประจำตัวของคุณเป็นห่วงใช้คำสั่ง ดูที่git-scm.com/book/gr/v2/Git-Tools-Credential-Storageเพื่อดูรายละเอียดเพิ่มเติม
ขอบคุณ

7
การแนะนำให้คุณปิดการเรียกข้อมูลอัตโนมัติถือเป็นตัวเลือก "ปล่อยให้ฉันอยู่คนเดียว" แต่มันก็เหมือนกับการพูดว่า "หากซอฟต์แวร์ของคุณใช้งานไม่ได้ให้หยุดใช้" มันเป็นสิ่งสำคัญสำหรับคนที่จะตระหนักถึงความแตกต่าง ฉันขอแนะนำให้ส่วน "อัพเดท" ของคำตอบนี้พูดว่า "หากไม่ได้ทำงาน" แทนและอธิบายว่าคุณสามารถทำให้หยุดรบกวนคุณได้โดยไม่ต้องแก้ไขปัญหาจริง ส่วนหนึ่งของคำตอบข้างต้น UPDATE นั้นถูกต้องจริง ๆ (อย่างน้อยตามลิงค์เอกสารที่ใช้งานได้สำหรับฉัน)
Don

67

คุณควรตั้งค่าข้อมูลรับรองของคุณเช่นนี้:

git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git

คุณสามารถรับ URL ระยะไกลเช่นนี้:

git config --get remote.origin.url


5
หากฉันมี @ ในรหัสผ่านของฉันแล้ว URL จะเป็นอย่างไร
Suvonkar

นี่เป็นวิธีที่ดีจริงๆ แม้ว่าคำถามหนึ่งข้อใดที่ข้อมูลรับรองเหล่านั้นบันทึกไว้ในระบบไฟล์ภายในเครื่อง
Teoman shipahi

1
ในไฟล์. git \ config
yohosuff

โปรดทราบด้วยว่า <PASSWORD> เป็นทางเลือกถ้าคุณไม่ต้องการบันทึกรหัสผ่านของคุณลงในดิสก์ภายในเครื่องและต้องการให้ระบบแจ้งรหัสผ่านต่อไป
Ben Barreth

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

55

สิ่งนี้ได้ผลสำหรับฉัน:
1. ตั้งค่า hepler หนังสือรับรองให้เก็บ
$ git config --global credential.helper store
2. จากนั้นตรวจสอบว่าคุณต้องการ:
$ git config --global credential.helper store

ตัวอย่างง่ายๆเมื่อใช้ git bash จากที่นี่ (ใช้ได้กับ repo ปัจจุบันเท่านั้นใช้--globalสำหรับ repos ทั้งหมด)

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: < type your username >
Password: < type your password >

[หลายวันต่อมา]
$ git push http://example.com/repo.git
[ข้อมูลรับรองของคุณถูกใช้โดยอัตโนมัติ]

จะใช้ได้กับ VS Code ด้วย

รายละเอียดเพิ่มเติมตัวอย่างและการใช้งานขั้นสูงที่นี่

หมายเหตุ:ชื่อผู้ใช้และรหัสผ่านไม่ได้เข้ารหัสและเก็บไว้ในรูปแบบข้อความธรรมดาดังนั้นให้ใช้กับคอมพิวเตอร์ส่วนบุคคลของคุณเท่านั้น


2
ฉันไม่รู้ว่าทำไมแคชนี้แค่ไม่อยากทำงานกับฉันบน Ubuntu 18.04 และเทียบกับรหัส storeทำมัน
D. Dan

1
ไม่ปลอดภัยมาก ใช้แคชแทน หากคอมพิวเตอร์ "ส่วนตัว" ของคุณถูกแฮ็กข้อมูลประจำตัวของคอมไพล์ของคุณก็อาจถูกแฮกด้วยเช่นกัน
Hypersoft Systems

1
แคชบันทึกข้อมูลประจำตัวในหน่วยความจำไม่ใช่วิธีแก้ปัญหาระยะยาว คุณไม่จำเป็นต้องใส่ชื่อผู้ใช้และรหัสผ่านทุกครั้ง แต่คุณยังต้องป้อนบ่อยๆ
Vaibhav Vishal

1
ฉันชอบคำตอบนี้ดีที่สุด ฉันไม่ต้องการให้ขอชื่อผู้ใช้ / รหัสผ่านทุกครั้งที่ฉันกดรหัสไปยังจุดเริ่มต้น (เช่น GitLab) โดยใช้ VS Code
Sean McCarthy

ฉันยังคงยืนยันว่าวิธีนี้ไม่ปลอดภัย เครดิตจะถูกเก็บไว้ในไฟล์ `~ / .git-credentials` ซึ่งสามารถถูกละเมิดเมื่อระบบถูกบุกรุก การเปลี่ยนแปลงที่ดีขึ้นhttpsไปsshและการใช้คีย์ SSH เป็นทางเลือก
Mohith7548

21

ขั้นตอนต่อไปนี้จะแนะนำคุณเกี่ยวกับวิธีการ:

  1. สร้างคีย์ SSH (ไม่มีวลีรหัสผ่าน **)
  2. เพิ่มกุญแจสาธารณะที่สร้างในขั้นตอนที่ 1 ไปยังที่เก็บ Git ของคุณ
  3. ยืนยันว่าขั้นตอนข้างต้นเสร็จสมบูรณ์แล้ว
  4. ตัดสินใจครั้งแรกของคุณ (โดยไม่ต้องระบุชื่อผู้ใช้ / รหัสผ่าน)

** การสร้างคีย์ SSH โดยไม่มีข้อความรหัสผ่านนั้นไม่ฉลาดหากงานของคุณนั้นสำคัญอย่างยิ่ง

ระบบปฏิบัติการ - Fedora 28 | แก้ไข - รหัส VS v1.23.0 | พื้นที่เก็บข้อมูล - Git

สร้างคีย์ SSH:

  • ssh-keygen -t rsa -C "email@goeshere.com"
  • ป้อนไฟล์ที่จะบันทึกคีย์ : กด Enter
  • ป้อนวลีรหัสผ่าน : กด Enter
  • ป้อนวลีรหัสผ่านเดียวกันอีกครั้ง : กด Enter

หลังจากทำตามขั้นตอนข้างต้นแล้วตำแหน่งของรหัสสาธารณะของคุณจะปรากฏในหน้าต่างเทอร์มินัล หากผู้ใช้ที่เข้าสู่ระบบในปัจจุบันคือ 'bob' ตำแหน่งของรหัสสาธารณะของคุณจะเป็น/home/bob/.ssh/id_rsa.pub

คัดลอกและนำเข้ากุญแจสาธารณะไปยัง GitHub:

  • cat /home/bob/.ssh/id_rsa.pub

  • คัดลอกคีย์สาธารณะทั้งหมดที่แสดงในหน้าต่างเทอร์มินัลของคุณไปยังคลิปบอร์ด

  • ไปที่https://github.comและลงชื่อเข้าใช้
  • คลิกที่ไอคอนผู้ใช้ที่มุมบนขวาของหน้าจอและเลือกการตั้งค่า
  • คลิกคีย์ SSH และ GPG
  • คลิกคีย์ SSH ใหม่
  • ป้อนชื่อวางกุญแจสาธารณะที่คัดลอกไปยังคลิปบอร์ดในสัญลักษณ์แรกและคลิกเพิ่มคีย์ SSH

ยืนยันขั้นตอนข้างต้น:

  • ssh -T git@github.com

  • yes

  • หวัดดี! คุณตรวจสอบสิทธิ์สำเร็จแล้ว แต่ GitHub ไม่ได้ให้การเข้าถึงเชลล์

ขั้นแรกส่ง / push โดยไม่ต้องป้อนชื่อผู้ใช้ / รหัสผ่าน: -touch test.txt

  • git add test.txt

  • git commit- เปิดโปรแกรมแก้ไขใส่ข้อความและบันทึกไฟล์ หาก vi เป็นเครื่องมือแก้ไขของคุณให้กดiหนึ่งครั้งที่ไฟล์เปิดขึ้นมาป้อนข้อความกด esc แล้วป้อน:xเพื่อบันทึกการเปลี่ยนแปลง

  • git push

อาการสะอึกเดียวที่คุณอาจพบคือเมื่อคุณพยายามที่จะ SSH เพื่อ GitHub ลิงค์นี้จะให้ความช่วยเหลือ -

การล่าสัตว์ที่มีความสุข!


20

ลองติดตั้ง " Git Credential Manager สำหรับ Windows " (และทำตามคำแนะนำในการตั้งค่าตัวจัดการข้อมูลรับรอง )

เมื่อจำเป็นต้องใช้การตรวจสอบภายในโดยใช้ Git (เช่นรหัส VS) ความมันจะ " อย่างน่าอัศจรรย์ " เปิดกล่องโต้ตอบที่จำเป็นสำหรับ Visual Studio Team บริการการป้อนข้อมูลประจำตัว


3
ฉันหวังว่าจะมี "Git Credential Manager สำหรับ Linux" ด้วย โอ้เดี๋ยวก่อนวิ่งssh-agentแล้ว แต่ VS Code ดูเหมือนว่าจะไม่สนใจเรื่องนี้ใน Linux
wigy

นี่เป็นทางออกที่ง่ายที่สุดสำหรับฉัน และมันใช้งานได้ดี! ขอบคุณที่
ชี้นำ

20

สิ่งที่ฉันต้องทำก็คือเรียกใช้คำสั่งนี้:

git config --global credential.helper wincred

จากนั้นฉันก็ขอรหัสผ่านสองครั้ง

ครั้งต่อไปมันใช้งานได้โดยไม่ต้องใส่รหัสผ่าน


2
ขอบคุณ! แก้ไขปัญหาแล้วและอันนี้ก็เช่นกัน !
Jeffrey Roosendaal

4
บน Ubuntu ใช้แทนstore wincred
Cees Timmerman

1
สิ่งนี้ได้ผลสำหรับฉัน! นอกจากนี้คุณยังสามารถทำเช่นนี้git config --global credential.helper 'cache --timeout==1209600'เพื่อให้มันมีอายุการใช้งาน 2 สัปดาห์แทนที่จะเป็นค่าเริ่มต้น 15 นาที ที่มา: help.github.com/th/github/using-git/…
Andrew

1
^ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ดูที่นี่: git-scm.com/docs/gitcredentials git-scm.com/docs/git-credential-cache git-scm.com/docs/git-credential-store storeจะเก็บไว้อย่างถาวรบน ดิสก์. นอกจากนี้ความคิดเห็นก่อนหน้าของฉันมีข้อผิดพลาด: ไม่ได้ใช้การใช้งาน== =สายเกินไปที่จะแก้ไข
Andrew

18

ใช้ ssh แทน http / https

คุณจะต้องตั้งค่าคีย์ ssh บนเครื่องโลคัลอัปโหลดไปยังเซิร์ฟเวอร์ git ของคุณและแทนที่แบบฟอร์ม url http://ไปที่git://และคุณไม่จำเป็นต้องใช้รหัสผ่านอีกต่อไป

หากคุณไม่สามารถใช้ ssh เพิ่มสิ่งนี้ในการกำหนดค่าของคุณ:

[credential "https://example.com"]
    username = me

เอกสารที่นี่


การใช้คีย์ ssh ใน gitHub


เพียงทำตามขั้นตอนเหล่านั้นและคุณจะตั้งค่าคีย์ ssh ของคุณในเวลาไม่นาน:

  • สร้างคีย์ ssh ใหม่ (หรือข้ามขั้นตอนนี้หากคุณมีคีย์อยู่แล้ว)
    ssh-keygen -t rsa -C "your@email"

  • เมื่อคุณตั้งค่าคีย์ในhome/.sshไดเรกทอรี (หรือUsers/<your user>.sshภายใต้ windows) ให้เปิดและคัดลอกเนื้อหา


วิธีการเพิ่มรหัส sh ไปยังบัญชี GitHub?

  • เข้าสู่ระบบบัญชี GitHub
  • คลิกที่ตัวเอางานด้านขวาบน (การตั้งค่า)
    การตั้งค่าบัญชี gitHub
  • คลิกที่ SSH keys
    ส่วนของคีย์ ssh
  • คลิกที่ Add ssh key
    เพิ่มคีย์ ssh
  • วางรหัสของคุณและบันทึก

และคุณพร้อมที่จะไป :-)


4
คุณควรทำให้ชัดเจนว่าอะไรคือต้นเหตุ ในกรณีของฉันเนื่องจากฉันเปิดใช้งานการรับรองความถูกต้องสองระดับแล้ว SSH เป็นวิธีเดียวที่จะเชื่อมต่อกับ repos การเชื่อมต่อ https ใด ๆ จะนำไปสู่พรอมต์ดังกล่าว
Lex Li

@codeWizard ฉันจำไม่ได้ว่าเกิดอะไรขึ้น แต่ VS Code ทำงานได้ดีฉันหมายถึงการเชื่อมต่อกับ repo ของ GitHub โดยไม่ต้องมีการตั้งค่าเพิ่มเติมใด ๆ ฉันคิดว่าปัญหาอาจเกิดจากการที่ฉันติดตั้ง Gitub หลังจาก Github Desktop
ddieppa

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

3
@codeWizard VS Code เป็นโอเพ่นซอร์สและหลายแพลตฟอร์มคุณสามารถเรียกใช้บน Windows, MacOS หรือ Linux :), ทำงานกับตัวแปร ssh และดูสิ่งที่ฉันได้รับ
ddieppa

1
ลิงก์ไปที่เอกสารไม่ทำงาน
Vishal

14

โดยทั่วไปคุณสามารถใช้สิ่งอำนวยความสะดวกในการจัดเก็บข้อมูลรับรองในตัว:

git config --global credential.helper store

หรือถ้าคุณใช้ Windows คุณสามารถใช้ระบบข้อมูลรับรอง:

git config --global credential.helper wincred

หรือหากคุณใช้ MacOS คุณสามารถใช้ระบบข้อมูลรับรอง:

git config --global credential.helper osxkeychain

วิธีแก้ปัญหาแรกนั้นเหมาะสมที่สุดในสถานการณ์ส่วนใหญ่


6

การตรวจสอบโดยอัตโนมัติ Git จากบันทึกประจำรุ่น v1.45 :

การตรวจสอบ GitHub สำหรับที่เก็บ GitHub

รหัส VS ตอนนี้มีการตรวจสอบสิทธิ์ GitHub อัตโนมัติกับที่เก็บ GitHub ตอนนี้คุณสามารถโคลนดึงผลักดันจากที่เก็บสาธารณะและส่วนตัวโดยไม่ต้องกำหนดค่าตัวจัดการข้อมูลประจำตัวใด ๆ ในระบบของคุณ แม้แต่คำสั่ง Git ที่เรียกใช้ใน Integrated Terminal เช่น git push ก็จะได้รับการตรวจสอบสิทธิ์โดยอัตโนมัติกับบัญชี GitHub ของคุณ

คุณสามารถปิดใช้งานการตรวจสอบสิทธิ์ GitHub ด้วยการ git.githubAuthenticationตั้งค่า คุณยังสามารถปิดใช้งานการรวมการตรวจสอบสิทธิ์เทอร์มินัลด้วยการgit.terminalAuthentication ตั้งค่า


ที่ดี! การปิดใช้งานการตั้งค่าทั้งสองนี้บน Linux (Ubuntu 18.04 + KDE Plasma) จะช่วยแก้ไขการจัดการข้อมูลรับรอง การเปิดใช้งานทั้งสองนี้มีความสำคัญกับaskpass = /usr/bin/ksshaskpassฉัน.gitconfigและทำให้ฉันได้รับชื่อผู้ใช้และรหัสผ่านถามทุกครั้ง สิ่งนี้อาจจะได้รับการอัปเดตมากกว่าเป็นเวอร์ชั่น 1.45 บทบาทในเครื่องอื่น ๆ
Andrei Sinitson

4

สำหรับ windows 10: ไปที่แผงควบคุม / ตัวจัดการข้อมูลประจำตัว / ข้อมูลประจำตัวของ Windows -> คลิกที่ลิงค์ git -> แก้ไข -> อัปเดตเป็นรหัสผ่านใหม่ ว่าควรจะทำงาน


2

ใช้คีย์ SSH โดยไม่มีข้อความรหัสผ่าน

บางทีนี่อาจเห็นได้ชัดสำหรับบางคน (ไม่ใช่สำหรับฉัน) นอกจากนี้ยังไม่สามารถแก้ปัญหาได้หากคุณต้องการข้อความรหัสผ่าน แต่นี่เป็นการประนีประนอมที่ดีในสถานการณ์ของฉันใน Mac


2

หลังจากต่อสู้กับอะไรแบบนี้ซักพักฉันคิดว่าฉันคิดวิธีแก้ปัญหาที่ดีโดยเฉพาะเมื่อมีหลายบัญชีใน GitHub และ BitBucket อย่างไรก็ตามสำหรับ VSCode ในที่สุดมันก็เริ่มลงเอยด้วยการเริ่มต้นจากเทอร์มินัล Git Bash เพื่อให้สืบทอดตัวแปรสภาพแวดล้อมจากเซสชัน bash และรู้ว่า ssh-agent ตัวใดที่จะต้องดู

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่ฉันก็ยังพยายามหาสถานที่เพื่อรับข้อมูลที่ฉันต้องการ นอกจากนี้ตั้งแต่ปี 2017 ssh-agent มีความสามารถในการให้คุณใส่ข้อความรหัสผ่านเฉพาะเมื่อคุณพยายามเข้าถึง repo

ฉันวางสิ่งที่ฉันค้นพบลงที่นี่ถ้าใครสนใจ:



1

แก้ไขปัญหาโดยทำตามขั้นตอน

ถอนการติดตั้งซอฟต์แวร์ Vscode และคอมไพล์แล้วติดตั้งซ้ำ เปลี่ยน url ที่เก็บ git เป็นโคลนจาก ssh เป็น https


1

ฉันมีปัญหาคล้ายกันใน Visual Studio Code

ฉันจะแก้ไขโดยการเปลี่ยน URL ระยะไกลเพื่อhttps (ในไฟล์. git / config)

[remote "origin"]
    url = https://user@server.com/plesk-git/project.git

และนอกจากนี้ยังมี

git config --global credential.helper wincred

ดึงอีกครั้งป๊อปอัพข้อมูลรับรอง windows ออกมาแก้ไขปัญหาได้


0

สำหรับฉันฉันได้ติดตั้ง repo ระยะไกลของฉันด้วยคีย์ SSH แต่ไม่สามารถหาคอมไพล์ได้เพราะตัวแปรสภาพแวดล้อม HOMEDRIVE ถูกตั้งค่าให้แชร์เครือข่ายโดยอัตโนมัติเนื่องจากนโยบายโดเมนของ บริษัท ของฉัน การเปลี่ยนตัวแปรสภาพแวดล้อมในเชลล์ของฉันก่อนที่จะเปิดตัวcode .ทำให้ VSCode สืบทอดตัวแปรสภาพแวดล้อมที่ถูกต้องและวิโอลาไม่มีข้อผิดพลาดในการเชื่อมต่ออีกต่อไปในหน้าต่างเอาต์พุต git

ตอนนี้ฉันแค่ต้องคิดหาวิธีการแทนที่นโยบายโดเมนดังนั้น HOMEDRIVE จะชี้ไปที่c:\users\marvhenไดเรกทอรีในพื้นที่ของฉันซึ่งเป็นตำแหน่งเริ่มต้นสำหรับ.sshไดเรกทอรีเสมอ


0

ฉันจัดการเพื่อหยุดสิ่งนี้ได้โดยทำตามขั้นตอนต่อไปนี้

  1. ถอนการติดตั้ง Git Desktop (ไม่แน่ใจว่าจำเป็นหรือไม่)
  2. ถอนการติดตั้ง Credentials Manager cd "C:\Program Files\Git\mingw64\libexec\git-core"ตามด้วยgit-credential-manager.exe uninstall
  3. รีเซ็ตตัวช่วยข้อมูลรับรองเพื่อใช้ wincred git config --global credential.helper wincred
  4. รหัสผู้ใช้ VS เพื่อผลักดันการเปลี่ยนแปลงและป้อนข้อมูลรับรองอีกครั้ง

หมายเหตุ: ฉันใช้โทเค็นการเข้าถึงส่วนบุคคลเป็นรหัสผ่านของฉัน


0

ฉันแก้ไขปัญหาที่คล้ายกันในวิธีง่าย ๆ :

  1. ไปที่ CMD หรือเทอร์มินัล
  2. ชนิด git pull origin master . แทนที่ 'ต้นกำเนิด' ด้วยชื่อระยะไกลของคุณ
  3. มันจะขอข้อมูลประจำตัว พิมพ์.

นั่นคือทั้งหมดที่ ฉันแก้ไขปัญหา


0

นอกเหนือจากการเพิ่มรายการ ssh config ด้านบน

ถ้า windows

Set-Service ssh-agent -StartupType Automatic 

ใน powershell ตอนนี้รหัส vs ไม่ควรแจ้งให้ ...


0

สำหรับ windows 10 กด windows ชนิดคีย์เครดิตและคุณควรเห็น "ตัวจัดการข้อมูลประจำตัว" ในแผงควบคุมคลิกเพื่อเปิดแล้วลบข้อมูลประจำตัวที่เกี่ยวข้องที่แคชแล้วลองอีกครั้งมันจะถามรหัสผู้ใช้รหัสผ่านในรหัสผ่านที่ถูกต้องและคุณจะดี .

เกิดขึ้นกับฉันเมื่อฉันเปลี่ยนรหัสผ่านเครือข่าย


0

ฉันมักจะเรียกใช้คำสั่งง่าย ๆ นี้เพื่อเปลี่ยน URL ระยะไกล git จากhttpsเป็นssh

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