การรับรองความถูกต้องของคีย์ SSH ด้วยคอมพิวเตอร์หลายเครื่อง


21

ฉันกำลังอ่านเกี่ยวกับการรับรองความถูกต้องของคีย์ SSH และตั้งค่ากับคอมพิวเตอร์ 3 เครื่องที่บ้าน

ฉันมีคอมพิวเตอร์เครื่องหนึ่งเรียกว่า "A" และอีกสองเครื่องเรียกว่า "B" และ "C"

ตอนนี้จากเอกสารที่ฉันอ่านฉันจะเรียกใช้ ssh-keygen บน B และ C และวางกุญแจสาธารณะในคอมพิวเตอร์ A โดยสมมติว่าฉันจะใช้ SSH ในคอมพิวเตอร์ A เสมอหากฉันใช้ B หรือ C

แต่ฉันคิดว่าตัวอย่างเอกสารที่ฉันอ่านถือว่ามีเพียงคอมพิวเตอร์ในบ้านเพียง 1 เครื่องเท่านั้นที่จะใช้เพื่อบอกคอมพิวเตอร์อื่นนอกเครื่องได้ ในสถานการณ์ของฉันมันทำให้รู้สึกถึงแค่เรียกใช้ ssh-keygen บนคอมพิวเตอร์เครื่องหนึ่งและคัดลอกไฟล์ไปยังคนอื่น ๆ ? วิธีนี้ฉันต้องสำรองคีย์หนึ่งชุดเท่านั้นหรือ และเมื่อฉันลงชื่อเข้าใช้คอมพิวเตอร์ภายนอกฉันจะต้องตั้งค่าด้วยคีย์ 1 ชุดเท่านั้นซึ่งต่างกับการตั้งค่าคอมพิวเตอร์ทั้งสามเครื่อง

มันสมเหตุสมผลหรือไม่ มีข้อบกพร่องหรือข้อควรระวังในการพิจารณา?

ขอบคุณ

คำตอบ:


29

คุณสามารถทำได้ทั้งสองทางในทางทฤษฎี แต่พวกเขาแต่ละคนมีข้อดีและข้อเสีย:

คุณสามารถสร้างได้เพียง 1 คีย์เท่านั้นกล่าวว่าเป็น "ของคุณ" (ในฐานะบุคคล) รักษาความปลอดภัยที่ใดที่หนึ่งแล้วคัดลอกไปยังคอมพิวเตอร์ที่คุณใช้ ข้อได้เปรียบคือคุณสามารถเชื่อมต่อกับ A จากทุกที่ที่คุณไปตราบใดที่คุณมีกุญแจส่วนตัวของ SSH ข้อเสียคือตราบใดที่คุณคัดลอกคีย์ส่วนตัวของคุณจากที่หนึ่งไปยังอีกที่หนึ่งไม่ว่าคุณจะเพิ่มความเสี่ยงของการถูกอ่านโดยใครบางคนกำลังดักข้อมูลการเชื่อมต่อ ถ้าคอมพิวเตอร์ของคุณถูกขโมยคุณต้องสร้างรหัสใหม่บนคอมพิวเตอร์ทุกเครื่องที่ใช้รหัสนี้และแจกจ่ายรหัสใหม่

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

ตัวอย่างเช่นหากคุณต้องมอบคอมพิวเตอร์ซีให้กับพี่ชาย / น้องสาว / ภรรยา / สามี / เพื่อน / สุนัขหรือขโมย (โดยไม่ได้รับการอนุมัติจากคุณ) คุณจะต้องลบกุญแจออกจาก '' authorized_keys 'ของ A ไฟล์.

ดังนั้นแม้ว่ามันจะหมายถึง "คีย์เพิ่มเติมใน authorized_keys" ฉันขอแนะนำวิธีที่สอง


คุณไม่สามารถถอดรหัสสตรีม ssh ด้วยรหัสส่วนตัวของลูกค้าและขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์คุณไม่สามารถถอดรหัสได้ด้วยรหัสส่วนตัวของเซิร์ฟเวอร์ zurlinux.com/?p=1772
Dan Merillat

ถูกต้องและไม่ใช่สิ่งที่ฉันหมายถึง ฉันหมายถึงถ้าคุณขโมยรหัสส่วนตัวคุณสามารถใช้เพื่อเชื่อมต่อกับคอมพิวเตอร์ A จากที่อื่นได้ สิ่งนี้สามารถบรรเทาได้ด้วยการเพิ่ม FROM = "<IP>" ที่จุดเริ่มต้นของบรรทัด authorized_keys (ดูหน้าคน ssh)
mveroone

หลังจากคัดลอกผมต้องใส่รหัสผ่านของฉันที่จะใช้ในเครื่องคอมพิวเตอร์อื่น ๆ ของฉันฉันเดาว่าเป็นความปลอดภัยบางอย่างน้อย :)
ชีวิตคู่

3

การใช้ปุ่มเดียวกันบนคอมพิวเตอร์ทั้งสามเครื่องนั้นทำได้อย่างแน่นอน - ฉันทำตลอดเวลาเพื่อความสะดวกเป็นหลัก

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

  • คอมพิวเตอร์ทุกเครื่องมีกุญแจสาธารณะของคุณในไฟล์ authorized_keys
  • คุณเก็บคีย์ส่วนตัวของคุณไว้ 2 ชุด; อันหนึ่งอยู่ในแท่ง USB รอบคอของคุณ (เพื่อใช้เมื่อใช้ ssh เพื่อเข้าถึงคอมพิวเตอร์เครื่องอื่น) และอีกอันอยู่ในแท่ง USB ในที่ปลอดภัย (ในกรณีที่คุณทำสำเนาชุดแรก)

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

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

HTH


2
ตกลง แต่ HTH คืออะไร
mikeserv

3
HTH = ความหวังที่ช่วย
ALAN WARD

1
จะเป็นการดีที่จะชี้ให้เห็นว่าหากคุณใส่รหัสส่วนตัวในแฟลชไดรฟ์ก็ควรที่จะทำให้มันเป็นรหัสส่วนตัวที่มีการป้องกันวลีรหัสผ่าน ความไม่สะดวกในการป้อนข้อความรหัสผ่านในแต่ละครั้งสามารถบรรเทาได้โดยใช้ตัวแทน (pagent บน windows, ssh-agent บน linux)
mveroone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.