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