PHP ActiveX
PHP ActiveX
Generate DSA SSH Key
See more SSH Key Examples
Generates a DSA SSH key and saves to various public and private key file formats (OpenSSH and PuTTY).Chilkat PHP ActiveX Downloads
<?php
$success = 0;
$key = new COM("Chilkat.SshKey");
// numBits should be a minimum of 1024 and
// a multiple of 64. Typical values are
// 1024 or 2048.
$numBits = 2048;
$success = $key->GenerateDsaKey($numBits);
if ($success != 1) {
print 'Invalid numBits passed to DSA key generation method.' . "\n";
exit;
}
// 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).
// Export the DSA 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 DSA private key to unencrypted PuTTY format:
$exportEncrypted = 0;
$exportedKey = $key->toPuttyPrivateKey($exportEncrypted);
$success = $key->SaveText($exportedKey,'privkey_putty_unencrypted.ppk');
// Export the DSA 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');
print 'Finished.' . "\n";
?>