验证 known_hosts base64

验证 known_hosts base64

我想检查我的 known_hosts 中的所有 base64 编码数据。我有一个软件抱怨有一个非法字符,但我不知道在哪一行。我的 known_hosts 文件中有 270 行。

我注意到大多数行都有 3 个不同的 base64 字符串。

例如:

|1|SL7caYOIyaf6J+E6tMk3mRnyjBg=|3sXYrq/40lXL1XTnB1NLM9OxuBY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNQdXDs17bJoXeu3VnDu5btlSY3qqDPhMlixQl/J0BCTvIwY9Z/ggO+XLzWeSBBoEMEHlHZhgJ6MvtH9pBZ7wlY=

我知道我可以用base64检查

echo "SL7caYOIyaf6J+E6tMk3mRnyjBg=" | base64 --decode

但是我如何检查每行的所有 3 个字符串?

答案1

我使用这三个命令检查了该文件:

cat ~/.ssh/known_hosts | awk -F '|' '{print $3}' | base64 --decode | grep 'invalid input'
cat ~/.ssh/known_hosts | awk -F ' ' '{print $1}' | awk -F '|' '{print $4}' | base64 --decode | grep 'invalid input'
cat ~/.ssh/known_hosts | awk -F ' ' '{print $3}' | base64 --decode | grep 'invalid input'

如果它们未返回任何内容,则所有 base64 字符串都是正确的。

我注意到有些行以以下内容开头:

domain.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABA..

代替:

|1|SL7caYOIyaf6J+E6tMk3mRnyjBg=|3sXYrq/40lXL1XTnB1NLM9OxuBY= 

在我删除所有这些行之后,一切正常。

相关内容