การแบ่งปันไฟล์ไพรเวตคีย์ระหว่างคอมพิวเตอร์ / บริการหลายเครื่องทำได้หรือไม่?


110

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

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


นี่ไม่ใช่คำตอบสำหรับคำถามของคุณโดยตรง แต่แนะนำให้คุณใส่ข้อความรหัสผ่านสำหรับแต่ละคีย์ด้วย เป็นการดีที่จะแยกวลีรหัสผ่านสำหรับแต่ละคีย์ (ใช้ตัวจัดการรหัสผ่าน) เหตุผลมีดังต่อไปนี้: หากคีย์ส่วนตัวถูกบุกรุก (แล็ปท็อปถูกขโมยคอมพิวเตอร์ถูกแฮ็คเข้า) คุณจะมีเวลาก่อนที่คีย์จะถูกบังคับให้ดุร้ายและคุณสามารถแทนที่กุญแจสาธารณะในเครื่องทั้งหมดที่มีอยู่ได้ ก่อนที่ผู้โจมตีของคุณจะสามารถ ที่มา: help.ubuntu.com/community/SSH/OpenSSH/…
Xandor Schiefer

คำตอบ:


86

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

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

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

ฉันสามารถคิดถึงข้อยกเว้นสองข้อสำหรับกฎทั่วไปของคีย์ส่วนตัวเดียวต่อแหล่งที่มา:

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

5
นี่คือวิธีที่ฉันใช้คู่กุญแจของฉันเสมอ ฉันไม่เข้าใจว่าทำไม GitHub จึงเรียกร้องให้สร้างคู่คีย์ใหม่ในคำแนะนำการตั้งค่า ฉันเพิกเฉยและใช้คู่มาตรฐานของฉัน ฉันคิดว่าพวกเขาอนุรักษ์นิยม
toolbear74

ตกลงดังนั้นคุณพูดว่า "อย่าใช้คีย์ส่วนตัวเดียวกันบนเครื่องในขอบเขตที่แตกต่างกัน" แต่ถ้า DNS แก้ไขชื่อโฮสต์ที่ระบุให้กับเครื่องใดเครื่องหนึ่งขึ้นอยู่กับตำแหน่งของคุณ โดยไม่ต้องแชร์คีย์ส่วนตัวฉันจะได้รับคำเตือนหรือความล้มเหลวเมื่อฉันพยายาม ssh หรือ rsync กับชื่อโฮสต์นั้นเพราะ ssh สับสนที่มีสองคีย์แยกต่างหากสำหรับชื่อโฮสต์เดียวกัน
Michael

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

อาโอเค. ดูเหมือนว่าไม่มีความแตกต่างที่ชัดเจนระหว่างสองคนนี้และมันก็เป็นเพียงการสันนิษฐานว่าคุณรู้ว่าสิ่งที่กำลังพูดคุยเกี่ยวกับ
Michael

1
@JSBach การมีคีย์แยกต่างหากต่อขอบเขตอนุญาตให้คุณกำหนดสิทธิ์แบบละเอียดยิ่งขึ้น (คีย์ที่เก็บไว้ในขอบเขตความปลอดภัยต่ำ A อนุญาตให้ใช้ระหว่างเครื่องของ A แต่การเข้าสู่ B ต้องใช้ปัจจัยการพิสูจน์ตัวตนที่เข้มงวดขึ้น) และอนุญาตให้คุณเพิกถอน แยกจากกัน (ขอบเขต A ถูกบุกรุก แต่ฉันยังสามารถล็อกอินเข้าสู่ C ได้จาก B) SSO เป็นกรณีที่คุณเข้าสู่ระบบความปลอดภัยสูงสุดจากนั้นคุณสามารถเข้าสู่ระบบที่อื่น ฉันไม่ทราบว่ามีความเสี่ยงอะไรบ้างในการมีหลายคีย์ต่อผู้ใช้ นี้จะเป็นหัวข้อสำหรับความปลอดภัยของข้อมูล
Gilles

4

ฉันไม่รู้ว่าอะไรคือวิธีที่ดีที่สุด แต่ฉันสามารถบอกได้ว่าวิธีไหนของฉัน

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

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


+1 ผมกำลังจะไปพูดคุยกับเจ้านายของฉันเกี่ยวกับนโยบายการใช้งานคีย์ใหม่ ;-) ต่อเซิร์ฟเวอร์ / บริการเสียงมีความปลอดภัยมากกว่าเพียงแค่ต่อเครือข่าย
Diskilla

1

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

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


1
อ่านคำตอบที่ดีที่สุดที่นี่ คุณทำผิด ไม่ใช่ว่าคุณไม่สามารถทำแบบนั้นได้ แต่คุณไม่ควรทำ
PhilT

2
ไม่เห็นว่าทำไม downvotes ทั้งหมด เครือข่ายมหาวิทยาลัย (ตัวอย่าง) มักจะมีโฮมไดเร็กตอรี่ในเครือข่ายดังนั้นคีย์ส่วนตัวเดียวกันจะถูกนำไปใช้ในทุกที่โดยผู้ใช้แม้กระทั่งบนแล็ปท็อปที่คุณได้รับ ตราบใดที่คุณไม่ได้คัดลอกมันไม่ได้เข้ารหัสผ่านทางอินเทอร์เน็ตฉันคิดว่ามันดีถ้าคุณเข้าใจความเสี่ยง เลือดก็สะดวกกว่าเช่นกันโดยไม่ต้องเพิ่มรหัสสาธารณะของคุณไปยังสถานที่ต่าง ๆ 2,000 แห่งเพียงเพราะคุณลงชื่อเข้าใช้เครื่องอื่น
Asfand Qazi

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

0

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


0

รหัสสาธารณะที่คุณสร้างขึ้นสำหรับทุกคน มันจะช่วยให้พวกเขาเพื่อ a) ตรวจสอบความถูกต้อง b) เข้ารหัสให้คุณ

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

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


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