Sample code for 30+ languages & platforms
C#

Load a PuTTY Public Key

See more SSH Key Examples

Demonstrates how to load a PuTTY public key.

Chilkat C# Downloads

C#
bool success = false;

//  Load a PuTTY public key.
Chilkat.SshKey puttyKey = new Chilkat.SshKey();
string pubKeyText = puttyKey.LoadText("qa_data/ppk/putty_public.pem");

//  The pubKeyText contains this content:

//  	---- BEGIN SSH2 PUBLIC KEY ----
//  	Comment: "rsa-key-20170126"
//  	AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW
//  	6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8l
//  	fa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4
//  	zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8Vg
//  	bNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hc
//  	bOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==
//  	---- END SSH2 PUBLIC KEY ----

success = puttyKey.FromRfc4716PublicKey(pubKeyText);
if (success != true) {
    Debug.WriteLine(puttyKey.LastErrorText);
    return;
}

//  If desired, convert to other public key formats:
string openSshPubKeyStr = puttyKey.ToOpenSshPublicKey();
Debug.WriteLine(openSshPubKeyStr);

//  openSshPubKeyStr contains:
//  ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w== rsa-key-20170126

//  Convert to an XML format:
string xmlPubKeyStr = puttyKey.ToXml();
Debug.WriteLine(xmlPubKeyStr);

//  xmlPubKeyStr contains:
//  <RSAPublicKey>
//      <Modulus>x+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==</Modulus>
//      <Exponent>JQ==</Exponent>
//  </RSAPublicKey>
//  
//