scp 文件发送期间的 SHA-256 指纹验证

scp 文件发送期间的 SHA-256 指纹验证

使用自己编写的自动化工具通过 scp bash 命令将文件从 ServerA 发送到 ServerB。 ServerB 主机验证需要 SHA-256 指纹。这里确保 ServerA 中的文件将通过指纹 SHA-256 发送到 ServerB 的正确方法是什么?

答案1

如果您只有密钥指纹,而没有公钥本身,则可以向服务器询问其公钥并生成相应的指纹:

ssh-keyscan some.server | ssh-keygen -lf -

然后,您可以在该输出中查找指纹。例子:

% ssh-keyscan github.com | ssh-keygen -lf- | grep -w 'SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8' && echo key matched
# github.com:22 SSH-2.0-babeld-f97ce5b9
# github.com:22 SSH-2.0-babeld-f97ce5b9
# github.com:22 SSH-2.0-babeld-f97ce5b9
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
key matched

如果指纹匹配,则将密钥添加到.known_hosts

if ssh-keyscan some.server 2>/dev/null | ssh-keygen -lf - | grep -q 'SHA256:somekey'
then
    ssh-keyscan some.server >> ~/.ssh/known_hosts
fi

相关内容