ผู้ดูแลเซิร์ฟเวอร์ส่งรหัสส่วนตัวให้ฉันใช้ ทำไม?


73

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

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

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

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


6
ฉันจะไม่เรียกมันว่าปกติหรือมีสติ แต่เนื่องจากคุณมีรหัสส่วนตัว (สมมติว่าพวกเขาได้เพิ่มมันเป็นผู้มีอำนาจแล้ว) คุณสามารถใช้มันได้เช่นเดียวกับที่คุณใช้กุญแจส่วนตัวอื่น ๆ คุณไม่จำเป็นต้องใช้รหัสสาธารณะที่สอดคล้องกัน แต่ถ้าคุณต้องการคุณสามารถสร้างมันได้ตลอดเวลา: askubuntu.com/a/53555/158442
muru

34
การได้รับ-----BEGIN RSA PRIVATE KEY-----อีเมลเป็นสิ่งที่น่ากลัวถัดไปหลังจากเห็นผู้ใช้ชื่อ'); DROP DATABASE;--ในตารางชื่อผู้ใช้ของคุณ
Dmitry Grigoryev

62
@DmitryGrigoryev ไม่มีอะไรน่ากลัวเกี่ยวกับการเห็น'); DROP DATABASE;--ว่าเป็นชื่อผู้ใช้ในตารางฐานข้อมูลของคุณ - มันแสดงให้เห็นว่าคุณได้หลบหนีจากการป้อนข้อมูลของผู้ใช้อย่างถูกต้อง
HorusKol

19
แน่นอนที่สุดคุณไม่สามารถ'ใช้งานได้เหมือนที่คุณจะใช้คีย์ส่วนตัวอื่น ๆ ' อันนี้ไม่ได้เป็นส่วนตัว Ergoมันไม่อาจปฏิบัติตามหน้าที่ที่มันถูกสร้างขึ้น มันควรจะถูกโยนทิ้งไปและผู้ดูแลระบบยูนิกซ์ก็ลงโทษอย่างรุนแรง @muru
user207421

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

คำตอบ:


116

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

สิ่งที่ "อยู่ในใจของคุณ" สิ่งที่ควรจะเกิดขึ้นในขณะนี้คือสิ่งที่ถูกต้อง

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

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

  1. สร้างคู่กุญแจของคุณเองและแนบกุญแจสาธารณะไปกับอีเมลที่คุณส่งไปโดยบอกว่า:

    ขอบคุณ! เนื่องจากอีเมลไม่ใช่วิธีการแจกจ่ายที่ปลอดภัยสำหรับกุญแจส่วนตัวคุณช่วยกรุณาใส่กุญแจสาธารณะแทน มันแนบมา

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

    สร้าง keypair ของคุณเองใช้รหัสที่พวกเขาส่งให้คุณเข้าสู่ระบบในครั้งแรกและใช้การเข้าถึงนั้นเพื่อแก้ไขauthorized_keysไฟล์เพื่อให้มีรหัสสาธารณะใหม่ (และลบกุญแจสาธารณะที่สอดคล้องกับกุญแจส่วนตัวที่ถูกบุกรุก)

บรรทัดล่าง: คุณจะไม่ดูเหมือนคนงี่เง่า แต่ผู้ดูแลระบบคนอื่น ๆ สามารถทำให้ดูเหมือนคนงี่เง่าได้ง่ายมาก การทูตที่ดีสามารถหลีกเลี่ยงได้


แก้ไขเพื่อตอบสนองต่อความคิดเห็นจาก MontyHarder:

แนวทางปฏิบัติที่ฉันแนะนำไม่เกี่ยวข้องกับ "การแก้ไขสิ่งต่าง ๆ โดยไม่บอกผู้ดูแลระบบคนอื่นว่าเขาทำอะไรผิด"; ฉันแค่ทำอย่างละเอียดโดยไม่ทิ้งเขาไว้ใต้รถบัส

แต่ผมจะเพิ่มว่าผมจะยังติดตาม (สุภาพ) ถ้าเบาะแสที่ลึกซึ้งไม่ได้ถูกหยิบขึ้นมา:

สวัสดีฉันเห็นว่าคุณไม่ได้ตอบกลับความคิดเห็นของฉันเกี่ยวกับอีเมลในฐานะช่องทางที่ไม่ปลอดภัย ฉันต้องการมั่นใจว่าสิ่งนี้จะไม่เกิดขึ้นอีก:

คุณเข้าใจหรือไม่ว่าทำไมฉันถึงพูดถึงเรื่องการจัดการกุญแจส่วนตัวอย่างปลอดภัย?

ที่ดีที่สุด

โทบี้


9
+1 คำตอบที่ดีที่สุด และฉันจะเพิ่ม: ระวังเป็นพิเศษเนื่องจากระบบนี้ได้พิสูจน์แล้วว่าไร้ความสามารถ ควรปกป้องหลังของคุณให้ดีขึ้นเมื่อ (และไม่ใช่ถ้า ) เขา / เธอจะทำให้เซิร์ฟเวอร์ดีขึ้น
dr01

2
ขอบคุณ ฉันใช้ถ้อยคำที่ละเอียดอ่อนและส่งกุญแจสาธารณะของฉันไปทั่ว ทุกอย่างดูเรียบร้อย แต่ฉันจะยกเลิกการอนุญาตกุญแจที่เขาส่งมาให้ฉันตอนนี้
Toby

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

21
@zwol ที่งานของฉันเรามีปรัชญา "ไม่โทษ" ที่เข้าใจว่าเราจะทำผิดพลาด แต่ทำให้มันมีความสำคัญสูงที่จะไม่ทำผิดพลาดสองครั้ง แต่เพื่อที่จะไม่ทำผิดพลาดซ้ำสองครั้งคุณต้องรู้ว่ามันเป็นความผิดพลาดซึ่งเป็นสาเหตุที่ฉันไม่สามารถโหวตคำตอบที่แนะนำให้ OP เพียงแค่แก้ไขสิ่งต่าง ๆ โดยไม่บอกผู้ดูแลคนอื่นว่าเขาทำอะไรผิด ฉันเลือกที่จะโทรหาข้อผิดพลาด 'งี่เง่า' มากกว่าเรียกชื่อผู้ดูแลระบบอย่างแม่นยำด้วยเหตุผลที่คุณกำหนดไว้ (แต่ฉันไม่แน่ใจว่าการสรุปของคุณกับผู้ปกครองจะเป็นข้อแตกต่างที่มีความหมาย)
Monty Harder

8
@LightnessRacesinOrbit ฉันสงสัยว่าคุณอาจมีความเข้าใจที่ไม่สมบูรณ์เกี่ยวกับความหมายของ "การทูต" คุณได้ลองล้างมันในพจนานุกรมที่ดีเช่นพจนานุกรมนานาชาติใหม่อันดับสามของเว็บสเตอร์หรือไม่?
สัญลักษณ์แทน

34

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

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

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


6
และเนื่องจาก OP ไม่มีวิธีที่จะรู้ว่าเครื่องของผู้ดูแลระบบมีความปลอดภัยมากเพียงใด (จากเรื่องราวที่ไม่ปลอดภัยอย่างมาก) เขาจึงควรสมมติว่ารหัสส่วนตัวคือ (หรือจะ) รั่วไหลไปยังผู้อื่น การส่งรหัสส่วนตัวทางอีเมลเป็นเพียงโบนัสสำหรับความไม่ซื่อสัตย์ของ infosec
dr01

1
คุณสามารถสันนิษฐานได้ว่าผู้ดูแลระบบที่สามารถสร้างผู้ใช้ไม่จำเป็นต้องใช้รหัสส่วนตัวของคุณในการปลอมตัวคุณ
Max Ried

3
@ MaxRied อาจเป็นเรื่องยากที่จะบันทึกความปลอดภัยที่เหมาะสม ด้วยรหัสส่วนตัวของคุณเขาไม่จำเป็นต้องเยาะเย้ยบันทึก มันเหมือนมีความสามารถในการรีเซ็ตรหัสผ่านของคุณกับการรู้รหัสผ่านของคุณ
Dmitry Grigoryev

@DmitryGrigoryev เขาสามารถเพิ่มคีย์อื่นให้กับไฟล์ authorized_keys ของคุณได้เสมอ ...
Max Ried

4
@ MaxRied ฉันหมายถึง/var/log/secureหรือคล้ายกันฉันค่อนข้างมั่นใจว่าเคล็ดลับช่องว่างจะไม่หลอกคนนี้
Dmitry Grigoryev

14

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

อย่างไรก็ตามฉันจะไม่เชื่อถือรหัสส่วนตัวที่ส่งถึงคุณผ่านอีเมลที่ไม่ได้เข้ารหัส

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


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

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

1
จุดที่ดีที่คุณสามารถแก้ไขได้ด้วยตัวเอง ดีกว่าที่จะทำด้วยตัวเองทันทีกว่ารอให้ผู้ดูแลระบบติดตั้งกุญแจสาธารณะสำหรับคู่กุญแจใหม่ การหลีกเลี่ยงการใช้คีย์ส่วนตัวที่ไม่มีความลับอีกต่อไปจะไม่ช่วยอะไรเลย เพียงแค่ให้ผู้ที่มีแนวโน้มจะใช้อีกต่อไปก่อนที่คุณจะสามารถเข้ามาและลบออกauthorized_keys(หลังจากเพิ่ม + ทดสอบด้วยตัวคุณเอง)
Peter Cordes

4
@mattdm นั่น ... เป็นเหตุผลทั้งหมด แต่ก็น่ากลัว คนที่ไม่สามารถสร้างคู่คีย์และส่งกุญแจสาธารณะให้ฉันได้อาจจะไม่ดีไปกว่านี้อีกแล้วกับคีย์ส่วนตัวที่ฉันให้ไว้
Monty Harder

1
@attdm ยุติธรรมพอ แต่เนื่องจากฉันเป็นคนเดียวที่ขอให้เขาทำสิ่งนี้ทั้งหมดฉันคิดว่ามันยากที่จะเชื่อว่าเขาคิดว่าฉันไม่รู้วิธีเชื่อมต่อกับ ssh หากขั้นตอนใดที่เขาทำมีความสับสนมากขึ้นเพราะฉันรู้เพียงวิธีการทั่วไปในการใช้กุญแจสาธารณะ : x
Toby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.