sshkey

Generate private/public SSH keys using Ruby without the ‘ssh-keygen` system command.

gem install sshkey

Tested on Ruby 1.8.7 and 1.9.2 (MRI).

Usage

Generate an SSH Keypair with [email protected] as the comment - providing a comment is optional

k = SSHKey.generate(:comment => "[email protected]")

Return an SSHKey object from an existing RSA Private Key (provided as a string)

k = SSHKey.new(File.read("~/.ssh/id_rsa"), :comment => "[email protected]")

Both of these will return an SSHKey object with the following methods:

# Returns an OpenSSL::PKey::RSA key object
# See http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/classes/OpenSSL/PKey/RSA.html
k.key_object
# => -----BEGIN RSA PRIVATE KEY-----\nMIIEowI...

# Returns the RSA Private Key as a string
k.rsa_private_key
# => "-----BEGIN RSA PRIVATE KEY-----\nMIIEowI..."

# Returns the RSA Public Key as a string
k.rsa_public_key
# => "-----BEGIN RSA PUBLIC KEY-----\nMIIBCg..."

# Returns the SSH Public Key as a string
k.ssh_public_key
# => "ssh-rsa AAAAB3NzaC1yc2EA...."

# Returns the comment as a string
k.comment
# => "[email protected]"

# Returns the fingerprint as a string
k.fingerprint
# => "2a:89:84:c9:29:05:d1:f8:49:79:1c:ba:73:99:eb:af"

Copyright © 2011 James Miller