รูปภาพแบบสุ่มสำหรับผู้ใช้ (ไม่ใช่โฮสต์) คีย์ SSH คืออะไร


95

ssh-keygenสร้างผลลัพธ์ต่อไปนี้:

The key fingerprint is:
dd:e7:25:b3:e2:5b:d9:f0:25:28:9d:50:a2:c9:44:97 user@machine
The key's randomart image is:
+--[ RSA 2048]----+
|       .o o..    |
|       o +Eo     |
|        + .      |
|         . + o   |
|        S o = * o|
|           . o @.|
|            . = o|
|           . o   |
|            o.   |
+-----------------+

จุดประสงค์ของภาพนี้คืออะไรมันให้คุณค่ากับผู้ใช้หรือไม่? หมายเหตุนี่เป็นรหัสลูกค้า (ผู้ใช้) ไม่ใช่รหัสโฮสต์



Google เป็นเพื่อนของคุณ: sanscourier.com/blog/2011/08/31/…
Networker

2
เปิดขึ้นอีกครั้งเนื่องจากพนักงานประจำชอบ Q นี้และคิดว่ามันจะเป็นส่วนเสริมที่ดีในเว็บไซต์
slm

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

1
แค่ FYI ฉันส่งคำถามนี้ไปยังรายชื่อผู้รับจดหมาย OpenSSH ในวันอื่น จนถึงตอนนี้จิ้งหรีด รายการ.mindrot.org/pipermail/openssh-unix-dev/2014-July/…
Patrick

คำตอบ:


55

นี้ถูกอธิบายในคำถามนี้: https://superuser.com/questions/22535/what-is-randomart-produced-by-ssh-keygen มันไม่ได้มีประโยชน์อะไรเลยสำหรับผู้ใช้ที่สร้างกุญแจ แต่มันก็เพื่อความสะดวกในการตรวจสอบ ส่วนตัว. คุณอยากจะดูที่:

2048 1b:b8:c2:f4:7b:b5:44:be:fa:64:d6:eb:e6:2f:b8:fa 192.168.1.84 (RSA)
2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 gist.github.com,207.97.227.243 (RSA)
2048 a2:95:9a:aa:0a:3e:17:f4:ac:96:5b:13:3b:c8:0a:7c 192.168.2.17 (RSA)
2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 github.com,207.97.227.239 (RSA)

ซึ่งการเป็นมนุษย์คุณจะต้องใช้เวลานานในการยืนยันหรือสิ่งนี้:

2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 gist.github.com,207.97.227.243 (RSA)
+--[ RSA 2048]----+
|        .        |
|       + .       |
|      . B .      |
|     o * +       |
|    X * S        |
|   + O o . .     |
|    .   E . o    |
|       . . o     |
|        . .      |
+-----------------+
2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 github.com,207.97.227.239 (RSA)
+--[ RSA 2048]----+
|        .        |
|       + .       |
|      . B .      |
|     o * +       |
|    X * S        |
|   + O o . .     |
|    .   E . o    |
|       . . o     |
|        . .      |
+-----------------+

ตัวอย่างที่ดึงมาจากhttp://sanscourier.com/blog/2011/08/31/what-the-what-are-ssh-fingerprint-randomarts-and-why-should-i-care/

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

นี่เป็นคำถามที่อ่านได้ดีจริงๆ: http://users.ece.cmu.edu/~adrian/projects/validation/validation.pdf


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

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

1
ฉันยอมรับว่าเป็นสิ่งที่ถูกถามเกี่ยวกับรหัสผู้ใช้ไม่ใช่รหัสโฮสต์
Patrick

3
ฉันใช้โฮสต์คีย์เป็นตัวอย่างสำหรับหลักการพื้นฐานอยู่ที่นั่นแม้ว่าฉันจะสร้างและเพิ่มตัวอย่างคีย์ผู้ใช้ ขอบคุณสำหรับการป้อนข้อมูลแพทริค
Torger597

13

ดูเหมือนว่าจะมีความสับสนมากมายเกี่ยวกับความแตกต่างระหว่างคีย์โฮสต์และรหัสผู้ใช้

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

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

มันไม่สำคัญที่จะยืนยันตัวเอง คุณไม่จำเป็นต้องยืนยัน "yup, I'm me" แม้ว่ารหัสผู้ใช้ของคุณจะมีการเปลี่ยนแปลง แต่อย่างใดเซิร์ฟเวอร์ระยะไกลจะอนุญาตให้คุณเข้าหรือไม่ต้องการ การเชื่อมต่อของคุณไม่มีความเสี่ยงสูงในการดักข้อมูล

 

ดังนั้นแล้วทำไมไม่ssh-keygenแสดงรูปภาพ randomart เมื่อคุณสร้างคีย์ผู้ใช้ของคุณ ?
เพราะเมื่อมีการแนะนำโค้ดแบบสุ่มให้กับssh-keygen [grunk@cvs.openbsd.org 2008/06/11 21:01:35]คีย์โฮสต์และคีย์ผู้ใช้จึงถูกสร้างขึ้นในลักษณะเดียวกัน เอาต์พุตข้อมูลพิเศษอาจไม่ใช้สำหรับรหัสผู้ใช้ แต่จะไม่ทำให้เกิดความเสียหาย (นอกเหนือจากที่อาจทำให้เกิดความสับสน)

ตอนนี้เมื่อฉันพูดว่า "เมื่อมีการเปิดใช้รหัสสุ่ม" นี่เป็นเพราะมีการเปลี่ยนแปลงรหัสตั้งแต่ ทุกวันนี้ distros ส่วนใหญ่ใช้ssh-keygen -Aเพื่อสร้างคีย์โฮสต์ซึ่งเป็นคุณสมบัติใหม่ คุณสมบัตินี้สร้างคีย์ที่แตกต่างหลากหลาย (rsa, dsa, ecdsa) และไม่แสดงภาพแบบสุ่ม วิธีเก่ายังคงสามารถใช้สำหรับการสร้างโฮสต์คีย์ แต่โดยทั่วไปไม่ได้ ดังนั้นวิธีเก่าจะใช้เฉพาะกับรหัสผู้ใช้ แต่คุณลักษณะแบบสุ่มก็ยังคงอยู่


คุณไม่จำเป็นต้องยืนยัน "yup, I'm me" ใช่แม้ว่ามันจะแม่นยำกว่านี้เล็กน้อยที่จะพูดว่า "yup ฉันดูเหมือนว่าฉัน" หากคุณมีหลายปุ่มคุณอาจต้องการคำติชมพิเศษเพื่อให้แน่ใจว่าคุณใช้กุญแจที่ถูกต้อง
Alois Mahdal

3

https://medium.freecodecamp.com/the-geekiest-ugly-sweater-ever-34a2e591483f#.y1glvah8k

ปรากฎว่า randomart เหล่านี้มีประโยชน์มาก ในฐานะที่เป็น jumbled ที่พวกเขาอาจปรากฏขึ้นพวกเขาเป็นเรื่องง่ายมากสำหรับมนุษย์ที่จะแยกแยะระหว่างสตริงเลขฐานสิบหกยาว

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