You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量校验known_hosts文件中所有Base64编码字符串的方法求助

批量校验known_hosts文件中所有Base64编码字符串的方法求助

嘿,这个问题我之前也碰到过!手动校验270行的Base64串确实太麻烦了,给你几个实用的批量校验方法,能快速定位到有问题的字符串:

方法1:精准匹配known_hosts格式的脚本

根据你给出的行格式,每行有3个明确的Base64串位置,我们可以写一个bash脚本逐行提取并校验:

#!/bin/bash
# 替换为你的known_hosts路径,默认是~/.ssh/known_hosts
KNOWN_HOSTS="$HOME/.ssh/known_hosts"

line_num=0
while IFS= read -r line; do
    ((line_num++))
    # 用|分割提取前两个Base64串
    IFS='|' read -ra pipe_parts <<< "$line"
    b64_1=${pipe_parts[2]}
    b64_2=${pipe_parts[3]}
    # 提取最后一个字段作为第三个Base64串
    b64_3=$(echo "$line" | awk '{print $NF}')

    # 校验第一个串
    echo "Line $line_num - 校验: $b64_1"
    echo "$b64_1" | base64 --decode > /dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "  ❌ 无效的Base64编码!"
    else
        echo "  ✅ 校验通过"
    fi

    # 校验第二个串
    echo "Line $line_num - 校验: $b64_2"
    echo "$b64_2" | base64 --decode > /dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "  ❌ 无效的Base64编码!"
    else
        echo "  ✅ 校验通过"
    fi

    # 校验第三个串
    echo "Line $line_num - 校验: $b64_3"
    echo "$b64_3" | base64 --decode > /dev/null 2>&1
    if [ $? -ne 0 ]; then
        echo "  ❌ 无效的Base64编码!"
    else
        echo "  ✅ 校验通过"
    fi
done < "$KNOWN_HOSTS"

使用方法:把这段代码保存为check_known_hosts_b64.sh,然后执行chmod +x check_known_hosts_b64.sh && ./check_known_hosts_b64.sh,它会逐个输出每行每个串的校验结果,一眼就能看到哪一行的哪个串出了问题。

方法2:通用Base64串扫描脚本

如果你的known_hosts格式有变化,或者想扫描所有符合Base64规则的字符串,可以用这个更通用的方法:

grep -nE '[A-Za-z0-9+/]+={0,2}' ~/.ssh/known_hosts | while IFS=':' read -r line_num content; do
    # 提取当前行所有Base64匹配项
    echo "$content" | grep -oE '[A-Za-z0-9+/]+={0,2}' | while read -r b64_str; do
        echo "Line $line_num - 校验: $b64_str"
        # 如果想看到具体错误信息,去掉后面的2>&1
        echo "$b64_str" | base64 --decode > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            echo "  ❌ 这里发现无效的Base64编码!"
        fi
    done
done

这个脚本会先提取所有带行号的Base64串,然后逐个校验,只输出有问题的结果(如果全部正常就没有错误提示),适合快速定位非法字符的位置。

小提示

  • 如果想看到base64解码的具体错误信息,把命令里的2>&1去掉,这样就能看到比如“invalid input”之类的提示,帮助你排查问题。
  • 如果你的known_hosts不在默认的~/.ssh/known_hosts路径,记得替换脚本里的路径。

备注:内容来源于stack exchange,提问作者PiTheNumber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:14:29