มันมีเหตุผลที่จะมีหลายคีย์ SSH หรือไม่?


44

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

การมีคีย์ SSH หลายอันช่วยเพิ่มความปลอดภัยหรือไม่? ทั้งหมดใช้จากเครื่องเดียวกันอยู่ใน ~ / .ssh เดียวกันส่วนใหญ่จะมีวลีรหัสผ่านเดียวกัน

ดังนั้น ... ฉันควรยอมแพ้ทั้งระบบและเพียงแค่ใช้กุญแจ SSH เดียวสำหรับทุกสิ่ง?

[อัพเดท 2015-08-05] Github เผยแพร่กุญแจสาธารณะของคุณและลูกค้า SSH ของคุณอาจส่งกุญแจสาธารณะทั้งหมดของคุณไปยังเซิร์ฟเวอร์ทุกเครื่องทั้งนี้ขึ้นอยู่กับการกำหนดค่าดังนั้นหากคุณกังวลกับเซิร์ฟเวอร์ SSH บุคคลที่สามที่รู้จักตัวตนของคุณเมื่อเชื่อมต่อ คุณควรใช้คีย์ SSH หลาย ๆ อันในความคิดของฉันมันเป็นความหวาดระแวง


คำถามนี้อาจจะพอดีกับที่ดีขึ้นในการรักษาความปลอดภัยข้อมูล
gerrit

คำตอบ:


25

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


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

มันมีเหตุผลที่จะมีคู่คีย์ที่แตกต่างกันในเครื่องที่แตกต่างกัน? ชอบอินสแตนซ์อื่นของ VirtualBox OS ใช่ไหม
Santosh Kumar

1
คำตอบนี้ไม่สนใจแนวคิดของการป้องกันในเชิงลึกเพราะมันอาศัย "คีย์ส่วนตัวของคุณที่คุณล็อคไว้ในเครื่องของคุณ" ลองพิจารณาตัวอย่างว่าจะเกิดอะไรขึ้นหากแล็ปท็อปของคุณถูกขโมยในขณะที่ (หนึ่งใน) คีย์ส่วนตัวของคุณกำลังถูกใช้โดย ssh-agent หากคุณมีหลายคีย์คีย์ใด ๆ ที่ยังคงเข้ารหัสนั้นปลอดภัย ฉันจะไม่เรียกว่าเสียเวลา
Jon Bentley

33

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

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


6
+1 สำหรับ "การประเมินโมเดลภัยคุกคาม" นี่เป็นเพียงประเด็น
sleske

21

ไม่ไม่เป็นการเสียเวลาในการใช้งานมากกว่าหนึ่งปุ่ม

ความหลากหลายมากขึ้น == ความเสี่ยงน้อยลง

คำสั่งของ Spiff นั้นไม่ถูกต้อง

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

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

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

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

ฉันบอกว่าดีสำหรับคุณคุณเลือกความเป็นส่วนตัวของคนอื่นมากกว่าความเกียจคร้านของคุณเอง

ป.ล. คุณธรรมของเรื่องราวต้องระวังการส่งต่อตัวแทน


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

9

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


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

3

ผมคิดว่าการที่เหมาะสมได้รับการพิจารณาจากสองมุมที่แตกต่างกัน: การรักษาความปลอดภัยและความสะดวกสบาย

เมื่อเราสร้างคู่คีย์ SSH เราจะขอให้คุณใส่ข้อความรหัสผ่านเพื่อเพิ่มเลเยอร์เพิ่มเติมเพื่อปกป้องคีย์ส่วนตัวดังต่อไปนี้:

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

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

รวมหรือไม่โดยใช้คู่คีย์ SSH หลายและหรือไม่ใส่ passwd เพิ่มเติมเรามีอย่างน้อยสี่วิธีที่จะไป และสมมติว่าทุกคีย์คู่และไฟล์จะถูกเก็บไว้ในconfig~/.ssh/

ตอนนี้ขออย่าพิจารณาความปลอดภัยก่อน

ตารางต่อไปนี้ให้อันดับที่เรียบง่ายเกี่ยวกับความปลอดภัย (จำนวนที่มากกว่าหมายถึงความปลอดภัยมากขึ้น):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

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

จากนั้น let't คิดเกี่ยวกับความสะดวกสบาย

แต่คู่คีย์และ passwds ที่มากขึ้นทำให้ชีวิตของเราสะดวกน้อยลงตารางต่อไปนี้ให้อันดับที่ง่ายเกี่ยวกับความปลอดภัย (จำนวนที่มากขึ้นหมายถึงความปลอดภัยมากขึ้น):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

ดังนั้นในสถานการณ์ทั่วไปหากเราต้องแลกด้วยความปลอดภัยและความสะดวกสบายในเวลาเดียวกันเราสามารถคูณสองคะแนนและบางทีหนึ่งคู่คีย์ SSH (ด้วย passwd)เป็นตัวเลือกที่ดี

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