เผยแพร่ id_rsa.pub เพื่อให้การตั้งค่าสภาพแวดล้อมใหม่ง่ายขึ้นหรือไม่


20

เพื่อให้การตั้งค่า SSH แบบไม่ใช้รหัสผ่านง่ายขึ้นในเครื่องและสภาพแวดล้อมใหม่ ๆ มีเหตุผลใดที่id_rsa.pubไฟล์ (แค่ครึ่งหนึ่งของคู่กุญแจสาธารณะ) ไม่สามารถเผยแพร่ได้ที่ไหนสักแห่งบนเว็บ? ตัวอย่างเช่นในที่เก็บ dotfiles GitHub

ฉันรู้ว่า:

  • id_rsaไฟล์ (ครึ่งส่วนตัวของคู่คีย์) จะต้องได้รับการปกป้องอย่างระมัดระวังและ
  • คู่คีย์ควรได้รับการป้องกันด้วยวลีรหัสผ่าน

แต่การค้นหาของฉันยังไม่ได้เปิดคำแนะนำที่ชัดเจนใด ๆ ที่อนุญาตหรือสนับสนุน

ด้วยความอยากรู้อยากเห็นคำแนะนำเดียวกันจะถือกุญแจคู่โดยไม่มีข้อความรหัสผ่านหรือไม่?


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

2
มีกลไกหนึ่งสำหรับสิ่งนี้อยู่แล้ว: ssh-import-id
MikeyB

ดังนั้นคุณสามารถแบ่งปัน id_rsa.pub ระหว่างเครื่องได้หรือไม่
Federico

คำตอบ:


26

RSA ได้รับการออกแบบมาโดยเฉพาะเพื่อให้คุณสามารถแชร์คีย์สาธารณะนั้นได้ดังนั้นคุณสามารถเผยแพร่ได้ สิ่งนี้ค่อนข้างคล้ายกับการทำงานของ x.509 (และ SSL) กับใบรับรอง RSA

ก่อนที่จะเผยแพร่ไฟล์ให้ดูที่ไฟล์นั้น สิ่งเดียวที่จำเป็นต้องมีคือคีย์เวิร์ด "ssh-rsa" และคีย์ที่เข้ารหัส 64 คุณอาจต้องการเก็บไว้ที่ (ฉันเชื่อว่านี่เป็นค่าเริ่มต้นในขณะนี้)

นี่เป็นความจริงไม่ว่าคีย์จะมีวลีรหัสผ่านหรือไม่ วลีรหัสผ่านเข้ารหัสคีย์ส่วนตัวและไม่ส่งผลกระทบต่อคีย์สาธารณะ

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

ฉันขอแนะนำให้ใช้คีย์ 4096 บิต (ระบุ-b 4096) เพื่อให้ยากกว่าปกติ (ค่าเริ่มต้นคือ 2048) เพื่อให้บางคนเปลี่ยนรหัสสาธารณะของคุณให้เป็นคีย์ส่วนตัว นั่นเป็นความเสี่ยงที่สำคัญเพียงอย่างเดียวในการทำเช่นนี้และมันไม่ใหญ่มากเนื่องจากอัลกอริทึมได้รับการออกแบบมาโดยเฉพาะเพื่อให้ไม่สามารถใช้งานได้


33

มันเป็นอยู่แล้ว :) เพียงใส่ ".keys" ที่ส่วนท้ายของ URL โปรไฟล์ Github ของคุณเช่น:

https://github.com/tjmcewan.keys


ถานเป็นเรื่องที่น่าสนใจจริงๆ GitHub เปิดเผยสิ่งนี้เพื่ออะไร
richardneish

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

ฉันไม่ได้ตระหนักว่าพวกเขาทำอย่างนั้น
Zeb

1
+1 สำหรับการค้นพบที่น่าสนใจใน Github
Raymond Tau

5

ในขณะที่ตามกฎแล้วฉันไม่แนะนำให้วางการกำหนดค่าเฉพาะของคุณในที่เก็บโครงการสาธารณะ (สมมติว่า repo สำหรับทุกคนและการกำหนดค่าของคุณสำหรับคุณเพียงอย่างเดียวมันเป็นสิ่งที่หยาบคายเล็กน้อย)

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

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


เวกเตอร์ 1. แล้วชนกันกับลายนิ้วมือล่ะ? มันสั้นกว่าคีย์สาธารณะมาก การโจมตีของ vector 2 mim เช่น "ต้องติดตั้งเซิร์ฟเวอร์ oops ใหม่ซึ่งมีรหัสที่แตกต่างกัน แต่โปรดลงชื่อเข้าใช้ต่อไป" และการตรวจสอบสิทธิ์ปลอมสำหรับรหัสสาธารณะของผู้ใช้ (ถ้าเป็นไปได้ฉันไม่แน่ใจ)

1

ใช่คุณสามารถเผยแพร่ SSH pubkey ของคุณ และคุณสามารถเผยแพร่ลายนิ้วมือของเซิร์ฟเวอร์โดยใช้บันทึก SSHFPใน DNS! นี่อาจเป็นจริงอย่างมือตัวอย่างเช่นถ้าคุณต้องการปรับปรุง / เปลี่ยนคีย์ SSH ของเซิร์ฟเวอร์

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