Sample code for 30+ languages & platforms
DataFlex

SSH Key Fingerprint

See more SSH Examples

Demonstrates generating a fingerprint for an SSH key. The private key is imported into an SshKey object — setting Password first if the key file is encrypted — and GenFingerprint returns the fingerprint.

Note: The file paths are relative to the application's current working directory. Supply the paths to your own files.

Background: A key fingerprint is a short hash that stands in for the full key, making it practical for humans to compare and for inventories to record. The everyday use is confirming that the private key you hold corresponds to a particular public key installed on a server — matching fingerprints is far easier than comparing key material. Note this fingerprints your own key; use Ssh.GetHostKeyFP to fingerprint a server's host key.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoKey
    String sKeyStr
    String sFingerprint
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    //  Demonstrates generating a fingerprint for an SSH key.

    Get Create (RefClass(cComChilkatSshKey)) To hoKey
    If (Not(IsComObjectCreated(hoKey))) Begin
        Send CreateComObject of hoKey
    End

    //  Set the password before importing an encrypted private key.  This should come from a secure
    //  source rather than being hard-coded.
    Set ComPassword Of hoKey To "myKeyPassword"

    //  LoadText is a convenience method that reads any text file into a string.  It does not itself
    //  load the key.
    Get ComLoadText Of hoKey "qa_data/privkey_openssh_encrypted.pem" To sKeyStr
    Get ComLastMethodSuccess Of hoKey To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComFromOpenSshPrivateKey Of hoKey sKeyStr To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComGenFingerprint Of hoKey To sFingerprint
    Get ComLastMethodSuccess Of hoKey To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln sFingerprint
    //  For example:  ssh-rsa 2048 d0:5f:f7:d6:49:60:7b:50:19:f4:41:59:d4:1f:61:7a


End_Procedure