![我在生产环境中使用了 ssh-keyscan。可以恢复吗?](https://linux22.com/image/775153/%E6%88%91%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%86%20ssh-keyscan%E3%80%82%E5%8F%AF%E4%BB%A5%E6%81%A2%E5%A4%8D%E5%90%97%EF%BC%9F.png)
我在生产环境中使用了 ssh-keyscan,后来才知道它可能允许 MITM。我检查了 known_hosts 文件,没有找到指纹。我可以在哪里检查或者有什么选择吗?
答案1
known_hosts 文件不包含指纹,只包含您添加的完整(公共)密钥。
要显示指纹,请使用ssh-keygen -l -f ~/.ssh/known_hosts
并且如果您愿意,可以添加-v
开关来显示与指纹一起提供的密钥的视觉 ASCII 艺术表示。
ssh-keygen -l -f ~/.ssh/known_hosts
2048 SHA256:2ggdJPUVnjTHdG36iGw7Du8knzvPSLgF6fTBUhzn3d5 service.example.com,192.168.2.87 (RSA)
256 SHA256:6QZWKiXoFC8qRg3ZhClY4RcUPX8F2ROOREmysPT5JW9 example.com (ECDSA)
实际的known_hosts文件看起来像这样:
service.example.com,192.168.2.87 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA...8sw==
example.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNo..C0N9T3Y4poTAXTuMyXZEPRywi28=
文件中的每一行known_hosts
包含以下字段:标记(可选)、主机名、密钥类型、base64 编码密钥、注释。字段之间用空格分隔。
HashKnownHosts
设置后 ,主机名可能会以散列形式存储。散列主机名以|
字符开头。