我在生产环境中使用了 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
设置后 ,主机名可能会以散列形式存储。散列主机名以|
字符开头。