ฉันจะบอก Git สำหรับ Windows ว่าจะหาคีย์ RSA ส่วนตัวของฉันได้อย่างไร


487

การตั้งค่า Git ของฉันทำงานได้ดีบน Linux แต่เมื่อฉันพยายามตั้งค่าใน Windows (โดยใช้ Git สำหรับ Windows และTortoiseGit ) ฉันไม่รู้ว่าจะใส่คีย์ SSH ส่วนตัวของฉันไว้sshที่ไหน ตั้งอยู่) ฉันใช้ตัวเลือก ssh.exe มาตรฐานระหว่างการติดตั้ง Git สำหรับ Windows การตั้งค่าทำงานได้ดีถ้าฉันอนุญาตให้ใช้การพิสูจน์ตัวตนด้วยรหัสผ่าน (แทน RSA) บนเซิร์ฟเวอร์


ฉันมีปัญหาเดียวกันฉันสามารถ ssh ลงในกล่อง dev ของฉันโดยใช้กุญแจสาธารณะเป็น "root" โดยใช้โปรแกรม "Git Bash" ที่ติดตั้งด้วย "Git สำหรับ Windows" แต่ฉันไม่สามารถเข้าสู่ระบบเป็น "git" กับฉันได้ คีย์แม้ว่าฉันได้คัดลอกไฟล์ "authorized_keys" ของฉันจาก "root" ของฉันไปยังผู้ใช้ "git" ของฉันและตั้งค่าเจ้าของและสิทธิ์อย่างถูกต้อง ทำไมฉันไม่สามารถเข้าสู่ระบบในฐานะ "git" เมื่อ "root" ทำงานกับไฟล์ "authorized_keys" ที่เหมือนกันทุกประการ แทนที่จะเป็น "git" มันจะส่งผ่านคีย์ส่วนตัวทั้งหมดซึ่งเหมือนกันกับ "root" และขอรหัสผ่าน นี่คือเซิร์ฟเวอร์ Centos 5.5 โดยวิธีการ

@fuzzy lollipop: คุณมีสิทธิ์ที่ถูกต้องในไฟล์ authorized_keys ของผู้ใช้ git หรือไม่? ควรเป็น chmod 600 และควรเป็นเจ้าของโดยผู้ใช้ git หากผู้ใช้รูทเป็นเจ้าของจะไม่สามารถใช้งานได้
Dan McClain

ใช่ไฟล์และไดเรกทอรีทั้งหมดเป็นเจ้าของและสิทธิ์ที่ถูกต้อง

คำตอบ:


486

สำหรับ Git Bash

หากคุณกำลังเรียกใช้ msysgit (ฉันกำลังสมมติว่าคุณเป็น) และกำลังมองหาที่จะใช้ Git Bash (ฉันแนะนำให้ใช้กับ TortoiseGit แต่ฉันพึ่งพา CLI มากกว่า GUI ในตอนนี้) คุณต้องเข้าใจว่าไดเรกทอรีหลักของคุณคืออะไรสำหรับ Git Bash โดยเริ่มจากนั้นพิมพ์pwd(บน Windows 7 มันจะเป็นสิ่งที่C:\Users\phsrฉันคิด) ในขณะที่คุณอยู่ใน Git mkdir .sshทุบตีคุณควร

หลังจากคุณมีโฮมไดเรกทอรีและ.sshโฟลเดอร์ภายใต้นั้นคุณต้องการเปิด PuTTYgen และเปิดคีย์ (ไฟล์. pkk) ที่คุณสร้างไว้ก่อนหน้านี้ เมื่อที่สำคัญของคุณเปิดคุณต้องการเลือกและบันทึกลงในConversions -> Export OpenSSH key HOME\.ssh\id_rsaหลังจากที่คุณมีรหัสที่ตำแหน่งนั้น Git Bash จะจดจำรหัสและใช้งานได้

หมายเหตุ: ความคิดเห็นระบุว่าสิ่งนี้ไม่สามารถใช้ได้ในทุกกรณี คุณอาจต้องคัดลอกคีย์ OpenSSH ไปที่Program Files\Git\.ssh\id_rsa(หรือProgram Files (x86)\Git\.ssh\id_rsa)

สำหรับ TortoiseGit

เมื่อใช้ TortoiseGit คุณจะต้องตั้งค่าคีย์ SSH ผ่านทิศทางที่รวดเร็ว คุณต้องทำเช่นนั้นกับที่เก็บข้อมูลทุกอันที่คุณใช้ TortoiseGit ด้วย


4
คำแนะนำของ pacey สำหรับ tortoisegit จะไม่ทำงานจนกว่าคุณจะมีพื้นที่เก็บข้อมูล (เนื่องจากการตั้งค่า 'ระยะไกล' ไม่ปรากฏขึ้นหากคุณไม่ทำ repo) และคุณอาจไม่สามารถรับที่เก็บได้ถ้าคุณสามารถ ' ไม่รับรองความถูกต้องของตัวคุณเองเพื่อคัดลอกจากแหล่งกำเนิด หากิน!
Kylotan

43
ด้วย GitBash ฉันพบว่าฉันต้องคัดลอก~/.ssh/id_rsaไฟล์ของฉันไปProgram Files\Git\.ssh\id_rsa- ซึ่งค่อนข้างสับสน แต่ตอนนี้ IntelliJ และ Windows cmd สามารถผลักดันไปยังที่เก็บ git ที่ใช้การตรวจสอบสิทธิ์ที่สำคัญ
เจพี

7
ในทำนองเดียวกัน ฉันเพิ่งติดตั้ง git-for-windows ฉันกำลังเรียกใช้จาก cmd.exe ฉันต้องการที่จะใส่ไฟล์id_rsaและเข้าid_rsa.pub dir ที่มีอยู่แล้วในปัจจุบัน ขอบคุณ JP c:\program files (x86)\Git\.ssh.ssh
Cheeso

5
ย่อหน้าที่สองเป็นสีทอง :)
Bjørn

4
@Damon: มันควรจะid_rsaไม่มีส่วนขยาย นั่นคือชื่อไฟล์ไม่ใช่ไดเรกทอรี
Dan McClain

107

เมื่อใช้ไคลเอ็นต์ SSH ในตัวที่จัดส่งมาพร้อมกับ Git สำหรับ Windows คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม HOME เพื่อให้ไคลเอ็นต์ Git SSH สามารถหากุญแจได้

ตัวอย่างเช่นในการติดตั้งWindows Vistaสิ่งนี้สามารถทำได้โดยการออกsetx HOME c:\Users\admin\บรรทัดคำสั่ง

มันทำให้วันของฉันและแก้ไขปัญหาด้วย Git โดยที่รหัสส่วนตัวของคุณไม่ได้รับการป้องกันด้วยรหัสผ่าน หากคุณต้องการใช้ ssh-agent คุณอาจเรียกใช้ ssh-agent cmd.exe (แม้ว่าฉันจะไม่เคยทำเช่นนั้น) และ ssh-add ตามปกติ

โปรดทราบว่าเครื่องมือ Git / SSH ทั้งหมดควรจะถูกเรียกใช้จาก cmd.exe เพื่อไม่ให้กะพริบหน้าต่าง

หากยังไม่สามารถทำงานได้อย่างถูกต้องโดยใช้ plink อาจจะสามารถทำได้โดยการปรับเปลี่ยนGIT_SSH อ้างถึงบทเรียนทั้งหมดของ SVN + นี่เป็นระบบประปาแบบเดียวกับที่คุณต้องติดตั้ง


16
นี่คือสิ่งที่ฉันกำลังมองหาเนื่องจากฉันพยายามใช้พรอมต์คำสั่งของ Windows ไม่ใช่คอมไพล์ทุบตี
John Ruiz

ดีมากแก้ไขง่าย แต่คงยากที่จะเข้าใจถ้าไม่มีสิ่งนี้!
thaddeusmt

สิ่งสำคัญคือไม่มีช่องว่างระหว่าง HOME = และ c: \ ... การแก้ปัญหาของตุลาคมได้ทำเพื่อฉัน :-)
Lutz

2
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use cmd` แทน
trejder

2
+1GIT_SSH=c:\pathto\plink.exe
Nick Grealy

54

คุณสามารถระบุตำแหน่งที่สำคัญสำหรับ TortoiseGit ด้วยวิธีต่อไปนี้:

  • เปิดหน้าต่าง Explorer
  • เปิด Contextmenu และไปที่TortoiseGitการตั้งค่า
  • ในหน้าต่างที่เปิดตอนนี้ให้ไปที่GitRemote
  • กำหนดเส้นทางไปยังปุ่ม PuTTY ของคุณในช่องใส่ที่เกี่ยวข้อง

ภาพหน้าจอด้านล่าง:

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


8
นอกจากนี้หากคุณต้องการแปลงรหัสส่วนตัวของคุณเป็นรูปแบบ '.ppk' จากรูปแบบอื่นคุณสามารถทำตามนี้ได้
Tariq M Nasim

มันใช้งานได้สำหรับฉัน
Maxim Eliseev

6
Git> ระยะไกลปรากฏขึ้นเมื่อคุณโคลนที่เก็บสำเร็จแล้ว
Steve Pitchers

5
วิธีแก้ปัญหาที่ง่ายกว่าคือการตั้งค่าทุกอย่างให้ทำงานอย่างถูกต้องใน git (โดยใช้ openSSH) แล้วบอก TortoiseGit ให้ใช้ ssh.exe ที่ git ใช้ ดูstackoverflow.com/a/33328628/318317ด้วยวิธีนี้คุณจะต้องแก้ไขเพียงครั้งเดียวเท่านั้น
Daniel Rose

50

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

  • เปิดพรอมต์ Git Bash
  • พิมพ์ 'ssh-keygen'
    • ยอมรับตำแหน่งเริ่มต้น
    • เลือกข้อความรหัสผ่านที่ว่างเปล่า (ดังนั้นเพียงแค่กด 'ป้อน' เพื่อทุกคำถาม ')
  • ตอนนี้คัดลอกพับลิกคีย์ไปยังเซิร์ฟเวอร์ของคุณตัวอย่างเช่น: scp ~ / .ssh / id_rsa.pub someuser@someserver.com: ~

นั่นเป็นเรื่องเล็กน้อยสำหรับคอมพิวเตอร์ของคุณ ตอนนี้sshเข้าสู่เซิร์ฟเวอร์ปลายทางแล้วทำ

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

แค่นั้นแหละ! คุณทำเสร็จแล้ว! จาก Git Bash ให้ทำดังต่อไปนี้เพื่อทดสอบ:

ssh someuser@someserver.com ls

ถ้ามันแสดงรายการไฟล์ในโฮมไดเร็กตอรี่ของคุณบนเซิร์ฟเวอร์ Git คุณก็ทำเสร็จแล้ว!

สำหรับ GitHub คุณไม่มีสิทธิ์เข้าถึงเชลล์ไปยังเซิร์ฟเวอร์ของพวกเขา แต่คุณสามารถอัปโหลดคีย์โดยใช้เว็บไซต์ของพวกเขาดังนั้นสำหรับบิต 'ตอนนี้คัดลอกไปยังเซิร์ฟเวอร์ของคุณ' ให้ทำดังนี้:

  • ใน Git Bash ให้พิมพ์ 'cat ~ / .ssh / id_rsa.pub' เลือกผลลัพธ์และคัดลอกไปที่คลิปบอร์ด
  • บนเว็บไซต์ GitHub ให้ไปที่ 'การตั้งค่าบัญชี', 'SSH และปุ่ม GPG' คลิก 'คีย์ SSH ใหม่' และวางรหัส

8
อย่าสร้างคีย์โดยไม่มีข้อความรหัสผ่าน มันเหมือนกับการใส่รหัสผ่านของคุณในไฟล์ข้อความยกเว้นว่าทุกคนรู้ตำแหน่งเริ่มต้นสำหรับคีย์ส่วนตัว
GregB

14
คุณกำลังตอบคำถามที่ผิด คำถามคือจะชี้ไปยังคีย์ส่วนตัวที่มีอยู่ได้อย่างไร
Orangutech

7
@GregB ฉันดูแบบนี้: เซิร์ฟเวอร์ใด ๆ ที่ฉันสร้างรหัสผ่านไม่ต้องใช้รหัสผ่านจะปลอดภัยเท่ากับแล็ปท็อปของฉันมันเป็นส่วนเสริมของขอบเขตความปลอดภัยของแล็ปท็อปของฉัน จริงๆแล้วไม่ได้เนื่องจากไดเรกทอรีบ้านของฉันถูกเข้ารหัส ;-) ดังนั้นมันจึงปลอดภัยเท่ากับพาร์ทิชันที่เข้ารหัสลับบนแล็ปท็อปของฉันซึ่งดีพอสำหรับการเข้าถึง GitHub ในความคิดของฉัน (ซึ่งอาจแตกต่างไปจากความเห็นของคุณแน่นอน!)
Hugh Perkins

3
@GregB อย่าตกหลุมรักความหวาดกลัว! :] แน่นอนว่าการใช้คีย์ที่มีการป้องกันด้วยรหัสผ่านนั้นปลอดภัยกว่าการใช้รหัสผ่านน้อยกว่า แต่การอ้างว่ากุญแจที่ไม่ใช้รหัสผ่านนั้นง่ายต่อการแตกเมื่อทำการจัดเก็บรหัสผ่านในไฟล์ข้อความนั้นเป็นเท็จอย่างเห็นได้ชัด ฉันเห็นคำแนะนำมากมายที่กระตุ้นให้ผู้ใช้ใช้คีย์ที่มีการป้องกันด้วยรหัสผ่าน แต่ฉันไม่เคยเห็นการอ้างสิทธิ์ใด ๆ เลยว่าการใช้งานโดยไม่มีรหัสผ่านนั้นไม่ปลอดภัยเลย บวก: ระบบบางระบบไม่สนับสนุนการแก้ปัญหาสำหรับการจดจำรหัสผ่านของคีย์ป้อนโดยผู้ใช้และถามว่าจะใช้แต่ละครั้งที่คีย์ ซึ่งทำให้การใช้คีย์ SSH ไม่มีจุดหมายในสถานการณ์นี้
trejder

4
เพื่อประโยชน์ในการสนทนาซึ่งเบี่ยงเบนไปจากคำถามเดิมกุญแจ SSH มีความปลอดภัยมากกว่าการเข้ารหัสด้วยรหัสผ่าน แต่การรักษาความปลอดภัยนั้นมีความเสี่ยงโดยไม่เข้ารหัสคีย์ SSH ของคุณ วิธีการส่วนตัวของฉันคือปลดล็อคกุญแจเมื่อต้นวันโดยใช้ตัวแทน SSH ซึ่งจะเก็บกุญแจถอดรหัสไว้ในหน่วยความจำเพื่อที่ฉันจะได้ไม่ต้องป้อนรหัสผ่านใหม่ตลอดทั้งวัน ในฐานะที่เป็น @Hugh Perkins ความคิดเห็นและฉันถอดความทุกคนรู้ข้อกำหนดด้านความปลอดภัยของคุณดีกว่าฉัน / เราทำ :)
GregB

38

หากคุณใช้ msysgit ด้วยเครื่องมือ OpenSSH คุณจะต้องสร้าง~/.ssh/id_rsaหรือสร้างการกำหนดค่า Git ~/.ssh/configซึ่งชี้ไปที่คีย์ของคุณ

นี่คือตัวอย่างของการกำหนดค่า Git สำหรับ Bitbucket ที่จะใช้ชื่อผู้ใช้ที่ถูกต้องและคีย์อื่นที่ไม่ใช่คีย์เริ่มต้น (ในกรณีที่คุณรักษาหนึ่งรหัสสำหรับการเชื่อมต่อ SSH และอีกหนึ่งสำหรับบัญชี Git)

~ / .ssh / config :

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

เมื่ออยู่ใน Git Bash คุณสามารถเรียกใช้สองคำสั่งเพื่อเพิ่มคีย์ของคุณลงใน ssh-agent ของเซสชันปัจจุบันเพื่อหลีกเลี่ยงการพิมพ์รหัสผ่านของคีย์ซ้ำ ๆ

eval `ssh-agent`
ssh-add /C/keys/yourkey.key

1
ฉันทำสิ่งนี้ แต่สำหรับ github.com: โฮสต์ github.com IdentityFile ~ / .ssh / github_rsa
เรือซาราห์

1
หากคุณมีที่ว่างในเส้นทางของคุณคุณต้องใช้เครื่องหมายคำพูด: IdentityFile "/ C / คีย์ของฉัน / คีย์"
r03

ฉันชอบวิธีนี้เพราะนี่ทำให้ฉันสามารถเชื่อมต่อกุญแจที่มีอยู่อย่างรวดเร็วจากพีซีเครื่องอื่นได้
Kirill Gusyatin

. gitconfig ของฉันมีส่วนต่างๆ ฉันควรวางโฮสต์เหล่านี้ไว้ในส่วนใด
Steve Yakovenko

16

ฉันเพิ่งตั้งค่า% HOME% =% HOMEPATH%

นี่เป็นข้อดีของการทำงานสำหรับผู้ใช้ทั้งหมดที่ล็อกอินเข้าสู่ระบบ (ผู้ใช้แต่ละคนจะได้รับโฟลเดอร์. ssh แยกต่างหาก)

ใน Vista:

  1. คลิกขวาที่คอมพิวเตอร์
  2. เลือกคุณสมบัติ
  3. คลิกที่การตั้งค่าระบบขั้นสูง
  4. คลิกที่ตัวแปรสภาพแวดล้อม
  5. ในส่วนด้านล่าง (ตัวแปรของระบบ) คลิกที่ใหม่
  6. สำหรับประเภทชื่อตัวแปร: HOME
  7. สำหรับประเภทเส้นทางที่เปลี่ยนแปลงได้:% HOMEPATH%
  8. คลิกตกลง

6
ในกรณีของฉันฉันได้เพิ่ม HOME =% USERPROFILE%
igor

1
โปรดทราบว่า%HOMEPATH%ไม่ได้มีไดรฟ์ดังนั้นหากแหล่งที่มาของคุณไม่ได้อยู่C:ที่คุณจำเป็นต้องเพิ่มการC: %HOME%
แกรมเพอร์โรว์

set %HOME%=%HOMEPATH%ทำงานให้ฉัน! ขอขอบคุณ!!
เต็ง

7

คีย์ส่วนตัวของคุณต้องถูกเพิ่มไปยังเอเจนต์ SSH บนเวิร์กสเตชันของคุณ วิธีที่คุณบรรลุเป้าหมายนี้อาจขึ้นอยู่กับลูกค้า git ที่คุณใช้อย่างไรก็ตาม puTTY และตัวแทนที่เกี่ยวข้อง (ผู้เข้าประกวด) อาจทำการหลอกลวงให้คุณนี่คือลิงค์ไปยังไบนารีและแหล่งที่มาอย่างเป็นทางการ:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


ฉันระบุไว้ข้างต้นว่าฉันใช้ Git สำหรับ Windows และฉันใช้ ssh.exe (บรรจุด้วย w / git) แทน putty จะต้องมีมาตรฐานการปฏิบัติบางอย่างสำหรับการเพิ่มคีย์ส่วนตัวฉันไม่สามารถหาวิธีได้ ในขณะที่การสลับซอฟต์แวร์อาจอนุญาตให้ฉันเข้าสู่ระบบได้จริง ๆ ต้องมีวิธีในการติดตั้ง Git มาตรฐานใช่หรือไม่?
เลขฐานสอง

ขอโทษฉันไม่ได้ทำงานบน windows เพียงลินุกซ์ แต่กุญแจจะต้องอยู่ในตัวแทน SSH ของคุณ จะมี agent.exe หรืออะไรบางอย่างตามสายเหล่านั้น?
Declan Shanaghy

1
ใช่การตั้งค่าเป็นเค้กที่ด้านลินุกซ์ แต่ฉันต้องทำให้ Windows ทำงานได้อย่างน่าเสียดายเช่นกัน มีไฟล์เรียกทำงานที่เกี่ยวข้องกับ ssh หลายไฟล์ในโฟลเดอร์ git / bin ในกล่อง Windows (ssh, ssh-add, ssh-agent, ssh-keygen & ssh-keyscan) แต่ฉันไม่รู้ว่าจะทำอย่างไรกับมัน ทำอะไรก็ได้ พวกเขาเพียงแค่เปิดหน้าต่าง cmd และปิดทันที ฉันนิ่งงัน
เลขฐานสอง

8
ผู้เข้าร่วมประชุมแก้ปัญหาให้ฉันได้ - ฉันมีทางลัดในโฟลเดอร์ Startup ของ Start Menu ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) ชี้ไปที่"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"เพื่อให้มันโหลดปุ่ม SSH ของฉันเมื่อเริ่มต้นและทำให้ GIT "ทำงาน": o)
Owen Blacker

@OwenBlacker OMFG! คุณควรเขียนความคิดเห็นนี้เป็นคำตอบแบบเต็มแน่นอน ! นี่เป็นทางออกเดียวที่นี่ที่จริงช่วยฉันและแก้ไขปัญหาของฉัน! น่าเสียดายที่ฉันให้คุณได้เพียง +1! :]
trejder

6

ในกรณีของฉันฉันถูกใช้ Git สำหรับ Windows windowsservercoreในภาชนะเทียบท่า

Git ของฉันถูกติดตั้งโดยchocolateyC:\Program Files\Gitไป

ฉันต้องอัปเดตไฟล์C:\Program Files\Git\etc\ssh\ssh_configด้วยสิ่งนี้:

Host example.com
   Identityfile ~/.ssh/id_rsa

จากนั้นฉันก็สามารถใช้รหัสได้ C:\Users\<user>\.ssh\id_rsa

หากคุณใช้ Git สำหรับ windows พร้อมกับ OpenSSH สำหรับ Windows Git sshยังคงใช้ของตัวเอง

พลัสถ้าคุณวางแผนที่ใช้ssh-keyscan host.com > known_hostsจาก OpenSSH ต้องระวังเพราะการส่งออกท่อจากstdoutของkeyscan(บน Windows) การเปลี่ยนแปลงการเข้ารหัส UCS 2 แต่ OpenSSH สามารถอ่านเท่านั้น UTF-8! ดังนั้นอย่าลืมเปลี่ยนการknown_hostsเข้ารหัสไฟล์


สิ่งนี้ช่วยได้ แต่สำหรับใครก็ตามที่ใช้รหัส id_dsa คุณจะต้องเพิ่ม "PubkeyAcceptedKeyTypes ssh-dss" ใต้โฮสต์ของคุณ
Michael Russo

4

.ตกลงผมมองที่ข้อเสนอแนะของ

แต่การวางกุญแจ SSH ส่วนตัวในโฟลเดอร์สาธารณะฉันไม่คิดว่าเป็นความคิดที่ดีดังนั้นฉันจึงเริ่มมองหาที่ที่โฮสต์ที่รู้จัก

ดังนั้นหากคุณต้องการปกป้องคีย์ SSH ของคุณอย่างถูกต้องคุณต้องใส่รหัสของคุณในไดเรกทอรีต่อไปนี้:

สำหรับ Windows 7, 8 และ 8.1 32 บิต:

C: \ Users \\ AppData \ Local \ VirtualStore \ Program Files \ Git \

สำหรับ Windows 7, 8 และ 8.1 64 บิต:

C: \ Users \\ ไฟล์ AppData \ Local \ VirtualStore \ Program (x86) \ Git \


นี่เป็นทางออกที่ง่ายที่สุดในเครื่อง Win7 ของฉัน known_hostsเช่นเดียวกับคุณผมค้นหา C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.sshพอแน่ใจว่ามันอยู่ใน โดยการวางไฟล์กุญแจของฉัน (id_rsa) ในไดเรกทอรีนั้น ssh สามารถค้นหาได้โดยไม่มีการร้องเรียน ฉันอ่านเล็กน้อย - นี่คือวิธีที่ Windows จัดการกับซอฟต์แวร์ (รุ่นเก่า) ที่พยายามเขียนไปยังพื้นที่ต้องห้าม (เช่น "C: \ Program Files \") ดังนั้น ssh ของ Git จึงไม่รู้ตัวว่ากำลังเขียนไปยังไดเรกทอรี VirtualStore, Windows คือการจัดการที่โปร่งใส อย่างน้อยไฟล์เหล่านี้เป็นของผู้ใช้!
DaveGauer

4

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

  1. ดาวน์โหลดpageant.exe, puttygen.exe, putty.exeและplink.exeจากเว็บไซต์ของฉาบ วางไว้ในC:\puttyToolsไดเรกทอรี
  2. puttygen.exeวิ่ง
  3. Generateคลิกที่ปุ่ม
  4. เลื่อนเมาส์ไปรอบ ๆ ส่วนบนของหน้าต่างจนกระทั่งแถบความคืบหน้าเต็มตามที่โปรแกรมขอให้คุณทำ
  5. ระบุข้อความรหัสผ่านและทำซ้ำในกล่องข้อความที่ตามมา
  6. คลิก "บันทึกคีย์ส่วนตัว" ไดเรกทอรีปกติเพื่อบันทึกสิ่งเหล่านี้คือ%USERPROFILE%\_ssh(ในคอมพิวเตอร์ของฉันแผนที่นี้เพื่อC:\Users\andres\.ssh\) มันไม่สำคัญว่าสิ่งที่คุณเรียกสำคัญ github.ppkแต่สำหรับวัตถุประสงค์ในการสาธิตฉันจะเรียกมันว่า ไฟล์นี้ควรมีนามสกุลเป็น. pkk
  7. คัดลอกข้อความในกล่องข้อความด้านบนใน PuTTYgen อันหนึ่งติดป้ายPublic key for pasting into OpenSSH authorized_keys fileแล้ววางลงในคีย์ SSH ใหม่ในการตั้งค่าของ GitHub ให้ชื่อเรื่องที่อธิบายถึงปุ่มที่เครื่องเปิดอยู่ (เช่น "Work laptop")
  8. เรียกใช้pageant.exeไอคอน systray ใหม่จะปรากฏขึ้น
  9. คลิกขวาที่ไอคอน -> เพิ่มปุ่ม
  10. ค้นหาไฟล์ ppk ของคุณป้อนข้อความรหัสผ่านของคุณ
  11. สร้างตัวแปรสภาพแวดล้อมผู้ใช้ใหม่เหล่านี้ (ผ่านการค้นหาแอปพลิเคชันEnvironผ่าน WindowsMenu ซึ่งจะค้นหาEdit environment variables for your account): GIT_SSH = "C:\puttyTools\plink.exe"และSVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. เปิด putty.exe และลองเชื่อมต่อกับโฮสต์ที่คุณโฮสต์ที่เก็บ Git ของคุณ ตัวอย่างเช่นลองเชื่อมต่อกับ github.com ผ่าน SSH และกล่องโต้ตอบจะถามคุณว่าคุณยอมรับลายนิ้วมือของเซิร์ฟเวอร์หรือไม่: คลิกที่ใช่
  13. เรียกใช้ตัวอย่างใหม่ของคุณMINGW64คอนโซล Git env | grep -i sshและตรวจสอบว่าตัวแปรสภาพแวดล้อมจะมีโดยการเขียนคำสั่ง
  14. คุณควรจะพร้อมทั้งหมด ลองโคลนด้วยโปรโตคอล Git + SSH จากโฮสต์ของคุณ

(ตอนแรกแยกออกมาจากคำแนะนำทั้งสองซึ่งฉันได้รวมไว้ในที่เดียว: วิธีการตั้งค่า Git สำหรับ Windowsและกำหนดค่า MinGW-W64 + MSYS เพื่อใช้ PuTTY Plink / Pageant )


3

เมื่อผสม GitHub สำหรับ Windows และ Git GUI สำหรับ Windows คุณอาจพบปัญหาที่ Git GUI แจ้งให้คุณใส่ชื่อผู้ใช้และรหัสผ่าน วิธีแก้ปัญหานี้คือการเปลี่ยน URL ระยะไกลจากhttps:(ซึ่งเป็นสิ่งที่ GitHub สำหรับ Windows สร้างขึ้น) เป็นโปรโตคอล Git ใน.gitไดเรกทอรีในไฟล์กำหนดค่าให้ค้นหา:

[remote "origin"]
   url = https://github.com/**username**/**reponame**.git
   fetch = +refs/heads/*:refs/remotes/origin/*

เปลี่ยนเป็น:

[remote "origin"]
    url = git@github.com:**username**/**reponame**.git
    fetch = +refs/heads/*:refs/remotes/origin/*

ใช่มันน่ารำคาญมาก มันเป็นธรรมชาติและง่ายต่อการลอก repo ด้วย github สำหรับ windows GUI แต่เมื่อใช้ git cui นอก git shell ล้มเหลว ฉันสงสัยว่าคำสั่ง git ในเชลล์ git ทำงานอย่างไรกับ https url ...
hiroshi

สำหรับ SSH เป็นคำนำหน้าเสมอgit@{SERVER URL}หรือไม่
nmz787

ใช่เท่าที่ผมเคยเห็น :)
IDisposable

มีอยู่แล้ว - ยังถามฉันตลอดเวลา
เอียนเกรนเจอร์

3

%USERPROFILE%\.sshสถานที่ตั้งมาตรฐานสำหรับไฟล์ที่อยู่ใน

%USERPROFILE%เทียบเท่ากับ $ HOME ใน Unix (โดยปกติแผนที่จะคล้ายกับc:\users\youruserid)

หากคุณใช้เครื่องมือ SSH ที่มาพร้อมกับ Git ซึ่งเป็นเครื่องมือบรรทัดคำสั่งมาตรฐานแบบ Unix คุณสามารถใช้บางอย่างเช่นสคริปต์ของฉันที่นี่เพื่อทำงานกับ ssh-agent ในทุกเชลล์


สำหรับผู้อ่านในอนาคต%USERPROFILE% is the equivalent of $HOMEคือไม่$HOMEเทียบเท่า แอพ Linux ที่ทำหน้าที่ไม่ดีจำนวนมากที่ส่งไปยัง Windows ถือว่าทั้งสองตัวเดียวกัน แต่ไม่ควรได้รับการปฏิบัติเหมือนกัน
คา Zoltu

มีคาคุณสามารถบอกถึงความแตกต่างในเจตนานั้นได้หรือไม่? ยิ่งไปกว่านั้นแม้ว่าจะมีจุดประสงค์ที่แตกต่างกัน แต่ดูเหมือนว่าหากเครื่องมือทั้งหมดใช้อย่างใดอย่างหนึ่งก็เป็นได้
Eric Blade

เครื่องมือที่ใช้%USERPROFILE%บน Windows ในลักษณะเดียว$HOMEกับบน Linux ละเมิดแนวทางปฏิบัติที่ดีที่สุด / คำแนะนำสำหรับการพัฒนา Windows (เผยแพร่โดย MS นานมาแล้วและได้รับการปรับปรุงเมื่อเวลาผ่านไป) มีเครื่องมือมากมายที่ทำสิ่งนี้ แต่ข้อโต้แย้งที่ตามพวกเขานั้นเหมือนกับอาร์กิวเมนต์ "X pees ในกลุ่มดังนั้นเราก็ควรทำเช่นกัน" USERPROFILEเป็นที่ที่ผู้ใช้เก็บเอกสารที่พวกเขาสร้าง / บันทึก (เช่นบันทึกการสนทนา) APPDATAใช้สำหรับข้อมูลการกำหนดค่าต่อผู้ใช้ LOCALAPPDATAใช้สำหรับแคชต่อผู้ใช้และไฟล์ขนาดใหญ่ PROGRAMDATAใช้สำหรับการกำหนดค่าและแคชทั้งเครื่อง
คา Zoltu

โดยทั่วไปเครื่องมือเดียวที่ทำงานร่วมกับ USERPROFILE นั้นเป็นเครื่องมือที่เขียนโดยนักพัฒนา Linux แล้วโอนย้ายไปยัง Windows ในฐานะนักพัฒนาคุณอาจใช้สิ่งเหล่านี้จำนวนมากดังนั้นจึงรู้สึกว่า "ทุกคนกำลังทำอยู่" แต่นอกระบบนิเวศเครื่องมือการพัฒนาแอปพลิเคชัน Windows ส่วนใหญ่เป็นพลเมืองดี แม้แต่ในบางครั้ง Microsoft ก็ทำผิดพลาดที่จะไม่วางสิ่งต่าง ๆ ไว้ในที่ที่ถูกต้อง (เป็น บริษัท ขนาดใหญ่) แต่โดยทั่วไปเมื่อคุณชี้ไปที่พวกเขาพวกเขาพยายามแก้ไขปัญหาและปฏิบัติตามแนวทางปฏิบัติของระบบปฏิบัติการ
คา Zoltu

1
(ขออภัยขีด จำกัด อักขระของ StackExchange สำหรับความคิดเห็น) นี่คือรายละเอียดเพิ่มเติมเกี่ยวกับโฟลเดอร์และคำอธิบายสั้น ๆ ของสิ่งที่เกิดขึ้นในแต่ละรายการ มีแหล่งข้อมูลอื่น ๆ เช่นกันรวมทั้งโพสต์บล็อกสิ้นเปลืองมากขึ้น แต่คนนี้มีความถูกต้องมากที่สุดทางเทคนิค: technet.microsoft.com/en-us/library/cc749104(v=ws.10).aspx
คาห์ Zoltu

2

ฉันมีปัญหาที่คล้ายกันและไม่มีคำตอบที่นี่แก้ปัญหาได้ ปรากฎว่าคู่หลักของฉันถูกสร้างขึ้นด้วยข้อความรหัสผ่านที่ว่างเปล่า (ฉันรู้ว่าโง่)

เมื่อฉันสร้างกุญแจคู่ใหม่และอัปโหลดกุญแจสาธารณะไปยัง GitHub สิ่งต่างๆก็เริ่มทำงานอีกครั้ง


1
นี้. ughhhhhhhhhhhhh ลาก่อน 2 ชั่วโมง
Scoop

1

คำตอบต่อไปนี้ใช้กับคำถามนี้เมื่อเรียกใช้ ssh จากบัญชีบริการ Windows: Jenkins (บริการ Windows) ด้วย Git ผ่าน SSH


ตามลิงค์ที่คุณให้ฉันได้รับการติดตั้งเจนกินส์ของฉัน ฉันต้องการตั้งค่าตัวแปรสภาพแวดล้อม HOME เป็นพา ธ โปรแกรม Git ซึ่งจัดเก็บไว้ในไดเรกทอรี. ssh ฉันสร้างคีย์ SSH ของฉัน
Spechal

1

คุณสามารถระบุทั้งพา ธ ไปยังคีย์และชื่อของไฟล์คีย์เช่นนั้น (บน Ubuntu) ตัวอย่างเช่น:

ssh -i /home/joe/.ssh/eui_rsa

วิธีนี้ช่วยแก้ปัญหาและช่วยให้คุณสามารถจัดเก็บกุญแจได้ทุกที่ที่คุณต้องการ
DaveGauer

คำถามนี้เกี่ยวกับ windows โดยเฉพาะ ฉันมีคอมไพล์ในเครื่อง Ubuntu ของฉันทำงานเช่นนี้ แต่ฉันไม่สามารถบอกได้ว่าจะตั้งค่าอย่างไรGIT_SSH_COMMANDบนเครื่อง Windows ของฉัน
mjaggard

1

Pageant (ตัวแทน SSH ที่ให้มาพร้อมกับชุด PuTTY ) แก้ปัญหาให้ฉันได้

ฉันมีทางลัดในโฟลเดอร์ Startup ของ Start Menu ของฉัน ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) ชี้ไปที่"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"เพื่อให้โหลดคีย์ SSH ของฉันเมื่อเริ่มต้นและทำให้ Git "เพิ่งใช้งานได้": o)


4
ฉันคิดว่าคุณต้องการการตั้งค่าอื่น ๆ ที่ถูกต้องเพื่อให้สามารถใช้งานได้ (เช่น GIT_SSH ตั้งค่าเป็น TortoisePLink.exe ฉันคิดว่า?) และถึงแม้ว่ามันจะได้ผลสำหรับฉันในอดีต :-(
Simon East

ฉันได้รับ 'ไม่สามารถเปิดไฟล์' จาก Pageant :( ซึ่งฉันรู้ว่าตั้งค่าไว้อย่างถูกต้องเนื่องจากฉันใช้เพื่อ TortoiseGit :(
Ian Grainger

1

คำตอบมากมายพูดแบบนี้ แต่สำหรับฉันยังไม่เร็วพอ!

ใน windows โดยใช้ msys (คอนโซล windows มาตรฐาน) C:\Users\{you}\.ssh\id_rsa

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

ฉันพบสิ่งนี้ที่ต้องการโคลนบางส่วน repo งานส่วนตัวในทับทิม MSYS CLI สำหรับ windows 10 64- บิต


0

หากคุณใช้ Windows 7/8 คุณควรดูใน C: \ Users \ Your_User_Name.ssh เพียงแค่คัดลอกและวางไฟล์ id_rsa ของคุณที่นี่และมันจะทำงานนอกกรอบ


0

ความผิดพลาดอย่างหนึ่งที่ฉันทำเมื่อใช้ SSH บน Windows คือเมื่อฉันพยายามใช้คีย์ผ่านไคลเอนต์ Git Bash ไฟล์ทั้งหมดภายใน ~ / .ssh เป็นสิทธิ์ที่ผิด แต่ก็ไม่ได้พยายามบอกฉันว่ามันเป็น ปัญหา.

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าทุกอย่างในไดเรกทอรี ~ / .ssh เป็น chmod 600


0

หากคุณมีสิทธิ์ที่จำเป็นในเครื่อง Windows และนโยบายของคุณอนุญาตฉันขอแนะนำให้ติดตั้ง Cygwin ( https://cygwin.com/ ) โดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าคุณเคยมีประสบการณ์กับ Linux มาก่อน Cygwin จะทำให้สามารถจัดการ ssh-keys ของคุณได้เช่นเดียวกับในเครื่อง Linux / Unix อื่น ๆ และให้การเข้าถึงเครื่องมือ cli เกือบทั้งหมดของ Linux


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

0

TortoiseGit ให้คุณระบุคีย์ที่จะใช้เมื่อทำการโคลนที่เก็บ เพียงตรวจสอบ "Load Putty Key" และเรียกดู.ppkไฟล์ดังภาพหน้าจอ:https://i.stack.imgur.com/lAyzT.png


หากปิดการใช้งานให้Settings... -> Network -> SSH clientตั้งค่าเป็นC:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
Nikita Bosik

0

ฉันได้แก้ไขปัญหาข้างต้นแล้วโดยการสร้าง

~ / .ssh / config

ไฟล์และใส่:

IdentityFile C:\Users\adria\.ssh\mysshkey

0

อ่านความคิดเห็นของคุณที่จะตอบคลันลองเปิดคำสั่งพร้อมท์ครั้งแรก (Start → Runcmd ) และนำทางไปยังที่คอมไพล์ / ssh-keygenโฟลเดอร์ช่องเก็บและเรียกใช้ ในทางทฤษฎีที่จะสร้างคีย์ RSA และวางไว้ในไดเรกทอรีที่เหมาะสม จากนั้นคุณจะต้องค้นหาและแบ่งปันกุญแจสาธารณะของคุณกับโลก

สาเหตุที่หน้าต่าง "กะพริบ" เป็นเพราะ Windows รันโปรแกรมและเมื่อมันทำงานมันจะปิดพรอมต์คำสั่งโดยคิดว่าคุณทำเสร็จแล้วเมื่อคุณต้องการเอาต์พุต


0

ใช้ v0.17 ของ Git Gui บน Windows ฉันคลิกที่เมนูคำสั่งต่อไปนี้: ช่วยเหลือ → แสดงคีย์ SSH

กล่องโต้ตอบปรากฏสิทธิOpenSSH คีย์สาธารณะของคุณ ฉันสร้างรหัสและคัดลอกมันไปยังคลิปบอร์ด จากนั้นฉันก็ยังคงปฏิบัติตามคำแนะนำการตั้งค่าในgithelpตั้งแต่ขั้นตอนที่สามเป็นต้นไป หลังจากนั้น Git Gui สื่อสารกับ GitHub อย่างเงียบ ๆ ไม่จำเป็นต้องป้อนข้อมูลรับรองใด ๆ


0

บนระบบ Windows 7 ของฉัน Git Gui มองหาคีย์ RSA ในโฟลเดอร์หรือมากขึ้นโดยเฉพาะuserprofile/.sshc:/users/yourusername/.ssh/

ส่วนที่ยุ่งยากสำหรับการตั้งค่าของฉันคือการรับโฮสต์ที่ใช้ร่วมกันที่ hostmonster เพื่อรับรหัส วิธีเดียวที่ฉันจะทำให้มันทำงานได้คือการใช้ Git Gui เพื่อสร้างคู่คีย์ (ไม่มีรหัสผ่าน) แล้วคัดลอกและวางกุญแจสาธารณะผ่านแผงควบคุม ssh จัดการคีย์

ในการเริ่มต้นที่จุดเริ่มต้นคุณต้องสร้างคีย์ใน Git Gui โดยไปที่เมนูช่วยเหลือ , แสดง SSH สำคัญแล้วสร้างคีย์ ตอนนี้คุณจะมีสองปุ่มใหม่ใน.sshไดเรกทอรี เปิด.pubไฟล์และคัดลอกเนื้อหา

เข้าสู่แผงควบคุมของคุณบนโฮสต์ที่ใช้ร่วมกันและไปในSSH , การจัดการคีย์ SSHและนำเข้าที่สำคัญ วางลงในที่สาธารณะกล่องและให้แน่ใจว่าคุณชื่อมันชื่อที่เหมาะสมโดยไม่ต้องเหมือง extension-- id_rsaเป็น ตอนนี้คุณต้องอนุญาตคีย์โดยใช้ลิงก์จัดการการอนุญาตดังนั้นมันจะถูกต่อเข้ากับauthorized_keysไฟล์

ตอนนี้ Git Gui และ Git Bash ของคุณควรจะสามารถใช้ SSH ได้โดยไม่ต้องพิมพ์รหัสผ่าน ฉันสามารถผลักดันการใช้ SSH ผ่าน Git Bash และ Git Gui ได้ดีบนเซิร์ฟเวอร์ของฉันที่ใช้ Linux มันเป็นโฮสติ้งที่ใช้ร่วมกันที่ให้ฉันพอดี ฉันหวังว่านี่จะช่วยให้ใครบางคนได้ใช้เวลาในการลองผิดลองถูกหลายชั่วโมงและมันก็ง่ายมาก!


0

หากคุณใช้บรรทัดคำสั่ง Git สำหรับ Windows คุณสามารถทำได้ดังนี้:

เปิดและดำเนินการcmd.exesetx HOME c:\PATH_TO_PRIVATE_KEY

สร้างโฟลเดอร์ใหม่.ssh, (หากไม่มี) ภายในc:\PATH_TO_PRIVATE_KEYและคัดลอกid_rsaไฟล์ของคุณ (รหัสส่วนตัวของคุณ) ลงไป

เสร็จสิ้น ตอนนี้คุณสามารถใช้บรรทัดคำสั่ง Git ได้ตามปกติ


0

msysgitของฉันประสบการณ์OpenSSL / Bash Git (ไม่ใช่ plink ของ PuTTY) คือลำดับการค้นหาสำหรับ.ssh/โฟลเดอร์ของคุณมีดังนี้

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

เหตุใดจึงมีคนจำนวนมากแนะนำให้ตั้งค่าHOMEหากหนึ่งในนั้นไม่ใช่สิ่งที่คุณคาดหวัง ที่สำคัญคุณสามารถตรวจสอบด้วยตัวเอง เพื่อดีบักใช้ssh -vกับเซิร์ฟเวอร์ที่ใช้การพิสูจน์ตัวตนคีย์สาธารณะดังนี้:

$ ssh -v git@github.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /d/.ssh/config
...
debug1: identity file /d/.ssh/identity type -1
debug1: identity file /d/.ssh/id_rsa type 1
debug1: identity file /d/.ssh/id_dsa type -1
...
debug1: Next authentication method: publickey
debug1: Trying private key: /d/.ssh/identity
debug1: Offering public key: /d/.ssh/id_rsa
..
Hi kcd83! You've successfully authenticated, but GitHub does not provide shell access.

เราพบsshการค้นหาบนไดรฟ์ที่คลุมเครือและไม่มีคำตอบก่อนหน้านี้ที่ดูเหมือนจะอธิบายสิ่งที่เราเห็น

บางครั้ง%HOMEDRIVE%%HOMEPATH%เป็นไดรฟ์เครือข่ายที่แมป (เช่นH:/) ซึ่งทำให้เกิดความล้มเหลวที่ไม่จำเป็นเมื่อมีปัญหาเครือข่าย / ไฟล์เซิร์ฟเวอร์แม้กระทั่งเมื่อ%USERPROFILE%/.sshมีC:/Users/Username/.sshและมีกุญแจอยู่ในเครื่อง การตั้งค่า%HOME%เพื่อ%USERPROFILE%หยุดไม่ให้มองไปที่ไดรฟ์บ้านระยะไกล


0

คุณยังสามารถโหลด PuTTY Agent (ผู้เข้าประกวด) และเพิ่มไพรเวตคีย์ที่คุณสร้างด้วย PuTTY สำหรับเซิร์ฟเวอร์

Git รู้จักสิ่งนี้และใช้สิ่งนั้นสำหรับการผลัก / ดึง


0

ฉันใช้ TortoiseGit เช่นเดียวกับ Git Bash บน Windows ขึ้นอยู่กับความต้องการ ฉันได้เพิ่มทุกอย่างลงใน TortoiseGit และมันใช้งานได้ดี แต่ Git Bash ไม่ได้หยิบมันขึ้นมาแม้ว่ากุญแจจะอยู่ในไดเรกทอรีที่ถูกต้อง ปรากฎว่าฉันต้องทำสิ่งนี้จาก Git Bash:

ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa

แน่นอนคุณสามารถเปลี่ยนเส้นทางไปที่ใดก็ตามที่คีย์ของคุณตั้งอยู่จำได้ว่าใช้\\เป็นตัวคั่น


0

หากใช้ Git สำหรับ Windows เมื่อสร้างคีย์ SSH แล้วคุณต้องเพิ่มคีย์ SSH ของคุณไปยัง ssh-agent

ดูการสร้างคีย์ SSH ใหม่และเพิ่มไปยังตัวแทน ssh

eval $(ssh-agent -s)

// Tell where the keys are located

ssh-add ~/.ssh/id_rsa

ยินดีต้อนรับสู่ Server Fault คำถามนี้มีคำตอบที่ได้รับการยอมรับอย่างกว้างขวางและยอมรับมานานหลายปีแล้ว ค้นหาคำถามที่ใหม่กว่าหรือคำถามที่สามารถปรับปรุงได้อย่างมีนัยสำคัญ
Matthew Wetmore

1
คำตอบที่ได้รับการยอมรับอย่างกว้างขวางไม่ทำงานสำหรับฉันในขณะที่คนนี้ทำ ผมเชื่อว่ามันอาจจะช่วยให้คนที่จะรู้ว่ากุญแจสำคัญที่จะต้องเพิ่มตัวแทน SSH และมันสามารถทำได้ด้วย 2lines คำแนะนำ
Matoeil
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.