ฉันได้รับข้อความเตือนที่รู้จักกันดีเมื่อพยายาม ssh เข้าสู่เซิร์ฟเวอร์:
$ ssh whateverhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:10
ECDSA host key for ipofmyhost has changed and you have requested strict checking.
Host key verification failed.
และฉันรู้ว่าทำไมเพราะฉันเปลี่ยน IP ของเซิร์ฟเวอร์ดังกล่าว แต่ถ้าไม่เป็นเช่นนั้นฉันจะตรวจสอบลายนิ้วมือสำหรับคีย์ ECDSA ที่ส่งโดยโฮสต์ระยะไกลได้อย่างไร
ฉันได้ลองทำโดย:
echo -n ipofthehost | sha256sum
แต่ฉันไม่ได้รับลายนิ้วมือเดียวกัน ฉันยังลอง "hostname, ip" ชนิดที่เหมือนกันใน aws แต่ฉันไม่ตรงกัน
ถ้าฉันลบทางเข้าออกจากไฟล์ known_hosts ของฉันและฉันพยายามที่จะ ssh อีกครั้งมันจะประสบความสำเร็จและบอกต่อไปนี้:
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Are you sure you want to continue connecting (yes/no)?
ดังนั้นการใช้ sha256sum กับสิ่งที่ได้รับลายนิ้วมือและฉันจะตรวจสอบได้อย่างไร
/etc/ssh/ssh_host_ecdsa_key.pub
เพื่อรับลายนิ้วมือ ฉันแค่ทำ