Scp

scp 文件發送期間的 SHA-256 指紋驗證

  • June 26, 2019

使用自行編寫的自動化工具通過 scp bash 命令將文件從 ServerA 發送到 ServerB。ServerB 主機驗證需要 SHA-256 指紋。在 ServerA 中確保文件將通過 thumprint SHA-256 發送到 ServerB 的正確方法是什麼?

如果您只有密鑰指紋,而沒有公鑰本身,您可以向伺服器詢問其公鑰並生成相應的指紋:

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

引用自:https://unix.stackexchange.com/questions/527032