The public key file (key.pub
) contains the binary key that is packaged into a base64 string.
The public key's fingerprint formula:
# SHA256
Base64Encode( SHA256( Base64Decode( base64-key-string ) ) )
# MD5
MD5-HEX( Base64Decode( base64-key-string ) )
PHP sameple:
$publicKeyContent = "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPMYhoA2ICw6rVutJ9CaF63NCUwE3KCB06JjScoVIfOQilV7y/s6I7ty765jaVXo8Thj8ePVwy6whivI8NbZ8UY=";
$fingerPrint = base64_encode(hash('sha256', base64_decode($publicKeyContent), true));
// MD5
$fingerPrintMD5 = md5(base64_decode($publicKeyContent));
The $fingerPrint
should same as the fingerprint in SSH connection: Server host key: ecdsa-sha2-nistp256 SHA256:AcrTsZ7KfsKzak2d68qCJKdXrZ+9TOhfr0/J3BMAa8U