Dim key As New ChilkatSshKey ' numBits may range from 384 to 4096. Typical values are ' 1024 or 2048. (must be a multiple of 64) ' A good choice for the exponent is 65537. Chilkat recommends ' always using this value. Dim numBits As Long numBits = 2048 Dim exponent As Long exponent = 65537 Dim success As Long success = key.GenerateRsaKey(numBits,exponent) If (success <> 1) Then Debug.Print "Bad params passed to RSA key generation method." Exit Sub End If ' Note: Generating a public/private key pair is CPU intensive ' and may take a short amount of time (more than few seconds, ' but less than a minute). Dim exportedKey As String Dim exportEncrypted As Long ' Export the RSA private key to OpenSSH, PuTTY, and XML and save. exportEncrypted = 0 exportedKey = key.ToOpenSshPrivateKey(exportEncrypted) ' Chilkat provides a SaveText method for convenience... success = key.SaveText(exportedKey,"privkey_openssh_unencrypted.pem") ' Export with encryption to OpenSSH private key format: key.Password = "secret" exportEncrypted = 1 exportedKey = key.ToOpenSshPrivateKey(exportEncrypted) success = key.SaveText(exportedKey,"privkey_openssh_encrypted.pem") ' Export the RSA private key to unencrypted PuTTY format: exportEncrypted = 0 exportedKey = key.ToPuttyPrivateKey(exportEncrypted) success = key.SaveText(exportedKey,"privkey_putty_unencrypted.ppk") ' Export the RSA private key to encrypted PuTTY format: key.Password = "secret" exportEncrypted = 1 exportedKey = key.ToPuttyPrivateKey(exportEncrypted) success = key.SaveText(exportedKey,"privkey_putty_encrypted.ppk") ' Export private key to XML: exportedKey = key.ToXml() success = key.SaveText(exportedKey,"privkey.xml") ' ---------------------------------------------------- ' Now for the public key.... ' ---------------------------------------------------- ' The Secure Shell (SSH) Public Key File Format ' is documented in RFC 4716. exportedKey = key.ToRfc4716PublicKey() success = key.SaveText(exportedKey,"pubkey_rfc4716.pub") ' OpenSSH has a separate public-key file format, which ' is also supported by Chilkat SshKey: exportedKey = key.ToOpenSshPublicKey() success = key.SaveText(exportedKey,"pubkey_openSsh.pub") Debug.Print "Finished."