ฉันจะแยกลายนิ้วมือจาก. ssh / known_hosts ได้อย่างไร


72

แล็ปท็อปของฉันมี~/.ssh/known_hostsไฟล์ที่มีประชากรดี ฉันต้องการใช้ประโยชน์เมื่อเชื่อมต่อกับโฮสต์ระยะไกลจากเดสก์ท็อปของฉันเนื่องจากการติดตามลายนิ้วมืออาจเป็นงานที่น่าเบื่ออย่างแท้จริง อย่างไรก็ตามฉันไม่สามารถหาวิธีที่จะถามssh-keygenหรือssh-keyscanบอกลายนิ้วมือที่เป็นที่รู้จักในพื้นที่สำหรับโฮสต์ที่รู้จักได้ ความคิดใด ๆ

คำตอบ:


95

ลองคำสั่งนี้:

% ssh-keygen -l -f ~/.ssh/known_hosts

2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1,192.168.1.3 (RSA)
2048 a2:5e:8c:4e:2e:be:be:eb:23:12:5e:fe:6c:4b:23:dd mach2,192.168.1.1 (RSA)
1024 ae:5f:bc:e3:33:c3:dd:45:1e:18:1a:46:d1:d6:d2:39 mach3,192.168.1.6 (RSA)
...
...

แค่ต้องการโฮสต์เดียว:

% ssh-keygen -l -f ~/.ssh/known_hosts -F mach1
2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1 (RSA)

ทรัพยากร

http://www.gossamer-threads.com/lists/openssh/users/49503


9
ขอบคุณ! ฉันไม่รู้ว่าคุณสามารถใช้-lกับไฟล์ known_hosts ได้ นี่คือรุ่นที่ตอบคำถามของฉันได้ดียิ่งขึ้น:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
ปฏิบัติต่อ mods ของคุณได้ดี

4
อนึ่งเหตุผล -F สำคัญสำหรับฉันคือรุ่น SSH ใดก็ตามที่ฉันติดตั้งได้แฮชชื่อโฮสต์ทั้งหมดในไฟล์ known_hosts ฉันไม่สามารถ grep สำหรับบรรทัดที่ฉันต้องการ (นี่เป็นมาตรการรักษาความปลอดภัยที่มีประโยชน์ถ้าใครบางคนเคยได้รับกุญแจส่วนตัวของฉัน - พวกเขามีโอกาสน้อยที่จะคิดได้ว่ามันสามารถนำเครื่องไปใช้ได้อย่างไร)
รักษา mods ของคุณได้ดี

13
เป็นที่น่าสังเกตว่า openssh รุ่นล่าสุดใช้แฮช SHA256 เป็นค่าเริ่มต้น หากต้องการรับแฮช md5 รุ่นเก่าให้ใช้-E md5ตัวเลือก
JumperPunk

3
และหากใช้พอร์ตที่ไม่ได้มาตรฐาน:[example.com]:1234
รักษา mods ของคุณดี

3
ในการรับลายนิ้วมือคีย์โฮสต์สำหรับเซิร์ฟเวอร์ SSH (แทนที่ IP ตัวอย่างด้วย IP หรือชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ):ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.