ssh keys ssh-agent ทุบตีและ ssh-add


28

ฉันยังใหม่กับปุ่ม ssh ทุกคนสามารถอธิบายวิธีการssh-agent bashและssh-addผลงาน?

ฉันต้องเข้าใจภายในของมันในอนาคต


คุณลองใช้คำเหล่านี้ใน Google แล้วหรือยัง
Daniel Beck

ใช่ฉันทำ. ฉันไม่ได้รับข้อมูลที่เป็นประโยชน์ใด ๆ ไม่ดีของฉัน
maneeshshetty

คำตอบ:


44

ตัวแทนเป็นโปรแกรมที่ช่วยให้คีย์ของคุณในหน่วยความจำเพื่อที่คุณจะต้องปลดล็อคพวกเขาครั้งเดียวแทนทุกครั้ง ssh-agentทำสิ่งนี้สำหรับคีย์ SSH

วิธีการปกติสำหรับการเริ่มต้นssh-agentคือ:

  • eval `ssh-agent`- สิ่งนี้จะเรียกใช้ตัวแทนในพื้นหลังและตั้งค่าตัวแปรสภาพแวดล้อม apropriate สำหรับอินสแตนซ์เชลล์ปัจจุบัน

    ( ssh-agentเมื่อเริ่มต้นโดยไม่มีอาร์กิวเมนต์คำสั่งเอาต์พุตจะถูกตีความโดยเชลล์ของคุณ)

  • exec ssh-agent bash- เริ่มต้นอินสแตนซ์ใหม่ของbashเชลล์โดยแทนที่เชลล์ปัจจุบัน

    (ด้วยอาร์กิวเมนต์อย่างน้อยหนึ่งตัวssh-agentจะไม่แสดงผลใด ๆ แต่เริ่มคำสั่งที่ระบุ: ในกรณีนี้bashเชลล์ แต่ในทางเทคนิคแล้วอาจเป็นอะไรก็ได้)

    บางครั้งอาจต้องการวิธีที่สองเนื่องจากจะฆ่า ssh-agent โดยอัตโนมัติเมื่อคุณปิดหน้าต่างเทอร์มินัล (เมื่อเริ่มต้นด้วยevalเอเจนต์จะยังคงทำงานอยู่ แต่ไม่สามารถเข้าถึงได้)

อย่างไรก็ตามสิ่งนี้จะเริ่มต้นตัวแทนที่ว่างเปล่าเท่านั้น ในการทำให้มีประโยชน์จริง ๆ คุณต้องใช้ssh-addซึ่งปลดล็อกคีย์ของคุณ (โดยปกติ~/.ssh/id_*) และโหลดเข้าสู่เอเจนต์เพื่อให้เข้าถึงการเชื่อมต่อsshหรือsftpได้


3
มีวิธีการเริ่ม ssh-agent ในช่วง bash เซสชันหลายครั้งหรือไม่?
Asim

9

นอกจากนี้คุณอาจต้องการเพิ่มปุ่มบางปุ่มเมื่อเริ่มเซสชัน

แก้ไข~/.bashrcไฟล์ของคุณและเพิ่ม:

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

ตรวจสอบกุญแจด้วย ssh-add -l

คุณสามารถหยุดเซสชัน ssh-agent ปัจจุบันด้วย ssh-agent -k

สิ่งที่ควรรู้เกี่ยวกับ ssh-agent และ. bashrc นั้นไม่ได้โหลดกุญแจมากเกินไป จำนวนความพยายามเริ่มต้นสำหรับ ssh daemon ถูก จำกัด ไว้ที่ 6 ซึ่งสามารถแก้ไขได้/etc/ssh/sshd_configด้วยMaxAuthTriesค่า


1
รหัสผ่านส่วนตัวที่สำคัญเมื่อเปิดssh-addด้วย "&" คืออะไร คุณสมมติว่าไฟล์ไพรเวตคีย์ไม่มีการป้องกันหรือไม่?
Luciano

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