Skip to content
/ sshkey Public
forked from bensie/sshkey

SSH private and public key generator in pure Ruby (RSA & DSA)

License

Notifications You must be signed in to change notification settings

azkwsr/sshkey

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sshkey

Generate private and public SSH keys (RSA and DSA supported) using Ruby without the ssh-keygen system command.

gem install sshkey

Tested on the following Rubies: MRI 1.8.7, 1.9.2, 1.9.3, Rubinius, REE. Ruby must be compiled with OpenSSL support.

Build Status

Usage

When generating a new keypair the default key type is 2048-bit RSA, but you can supply the type (RSA or DSA) and bits in the options. You can also (optionally) supply a comment:

k = SSHKey.generate

k = SSHKey.generate(:type => "DSA", :bits => 1024, :comment => "[email protected]")

Return an SSHKey object from an existing RSA or DSA 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 or OpenSSL::PKey::DSA key object
# http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/classes/OpenSSL/PKey/RSA.html
# http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/classes/OpenSSL/PKey/DSA.html
k.key_object
# => -----BEGIN RSA PRIVATE KEY-----\nMIIEowI...

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

# Returns the Public Key as a string
k.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"

# Validates SSH Public Key
SSHKey.valid? "ssh-rsa AAAAB3NzaC1yc2EA...."
# => true

Copyright

Copyright (c) 2011 James Miller

About

SSH private and public key generator in pure Ruby (RSA & DSA)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%