วิธีดูแลเซสชันการเข้าสู่ระบบ ssh-agent ด้วย OpenSSH และ PowerShell ใหม่ของ Windows 10


18

บนเครื่อง Ubuntu ของฉันฉันแค่ใช้ Keychain เพื่อรักษาตัวแทน ssh เดียวที่ยังคงอยู่ในระบบ

ฉันต้องการสิ่งที่คล้ายกับที่อยู่บน Windows ตอนนี้ที่ OpenSSH รวมอยู่ด้วย ฉันใช้ Git Bash กับif [ -z "$SSH_AUTH_SOCK" ] ; then ...สคริปต์ที่รู้จักกันดีแต่สิ่งนี้ส่งผลให้มีการเปิดตัวแทนของ ssh มากมายฉันรู้ว่าได้รับคำแนะนำ (ส่วนหนึ่งเนื่องจากโพสต์บล็อกนี้: http://rabexc.org/posts/pitfalls-of-ssh -agents ) - ซึ่งเป็นสิ่งที่ทำให้ฉันได้รับ Keychain สำหรับ Ubuntu อีกเหตุผลที่ไม่ได้ใช้สิ่งนี้อีกคือฉันย้ายไปที่ PowerShell เป็นเปลือกหลักของฉัน

แต่ฉันไม่แน่ใจว่าจะทำสิ่งเดียวกันบน Windows โดยเฉพาะด้วย PowerShellและWin32-OpenSSHได้อย่างไร

ขอบคุณ!

คำตอบ:


14

คุณต้องกำหนดค่าบริการตัวแทนการรับรองความถูกต้อง OpenSSH เพื่อเริ่มต้นโดยอัตโนมัติ (หรือคุณสามารถเริ่มด้วยตนเองทุกครั้งเมื่อเปิด PowerShell ของคุณเป็นครั้งแรก: Start-Service ssh-agent)

หลังจากนั้นคุณต้องทำssh-add C:\path\to\your\ssh\key\id_rsaเพียงครั้งเดียว หลังจากนั้นทุกครั้งที่มีการเริ่มต้น ssh-agent กุญแจจะอยู่ที่นั่น ssh-add -lคุณสามารถตรวจสอบกับ

แก้ไข: เพื่อให้ตัวแทน SSH เริ่มต้นด้วย Windows โดยอัตโนมัติคุณสามารถเรียกSet-Service ssh-agent -StartupType Automaticใช้พรอมต์ผู้ใช้ขั้นสูง


คุณช่วยเพิ่มรายละเอียดเกี่ยวกับวิธีรับ ssh-agent ให้เริ่มต้นโดยอัตโนมัติได้ไหม?
Mark Woon

@ MarkWoon ฉันเพิ่งแก้ไขคำตอบของฉันด้วย
Davi Koscianski Vidal

2
สิ่งนี้ดูเหมือนจะไม่ทำงาน - Set-Service ไม่มีผลกระทบที่ชัดเจนและ Manual Start-Service ในขณะที่มันเริ่มบางอย่างก็ไม่ได้ผล - คำสั่ง ssh-add ใด ๆ หลังจากนั้นล้มเหลวด้วย "การสื่อสารกับเอเจนต์ล้มเหลว" .
Chris Dodd

1
* ในการค้นหา startmenu สำหรับ "บริการ" * ดับเบิลคลิกที่ "ตัวแทนการรับรองความถูกต้องของ OpenSSH" * ตั้งค่าประเภทเริ่มต้นเป็น "อัตโนมัติ" * คลิก "เริ่ม" * คลิกตกลงและออก * * ตอนนี้ไปที่ PowerShell และเพิ่มคีย์ของคุณด้วย "ssh -add "* หลังจากนั้นตัวแทนจะจดจำกุญแจของคุณเมื่อคุณต้องการ :)
Esben Andersen

1

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

หากคุณมี Git สำหรับ Windows หรือ MinGW หรือสิ่งอื่นใดที่อาจเพิ่มยูทิลิตี้ GNU ในเส้นทาง Windows ของคุณนั่นอาจรบกวน OpenSSH สำหรับ Windows ไบนารีได้ สำหรับฉันฉันต้องลบ ProgramFiles / Git / bin ออกจากตัวแปรสภาพแวดล้อม PATH ของฉันแล้วเริ่ม PowerShell ใหม่เพื่อให้สิ่งนี้ใช้งานได้ ก่อนหน้านั้นฉันได้รับ "การสื่อสารกับตัวแทนล้มเหลว"

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