Net::SSH is a pure-Ruby implementation of the SSH2 client protocol.

   PROJECT: http://rubyforge.org/projects/net-ssh
   MANUAL: http://net-ssh.rubyforge.org
   API: http://net-ssh-rubyforge.org/api

Version 0.1.0 brings us out of "alpha" status and into "beta". There's 
still a lot of work to be done, but this new release adds the following 
significant features:

* URI support:

    require 'uri/sftp'

    uri = URI.parse( "sftp://user:password@" +
                     "my.host.com" +
                     "/path/to/some/file" +
                     "?option=value&option2=value2&..." )

* open-uri support:

    require 'uri/open-sftp'

    io = open( "sftp://host.com/path/to/some/file" )
    puts io.read.length

    # ...OR...

    uri = URI.parse( "sftp://host.com/path/to/some/file" )
    puts uri.read.length

   See the 'uri-demo.rb' file in the 'examples' subdirectory, or the 
SFTP chapter in the user's manual for more details.

* hostbased authentication: if you have your client and server 
configured correction (see the documentation for your server for the 
specifics).

* proxy support: tunnel your SSH connection through an HTTP, SOCKS4, or 
SOCKS5 proxy, with the option to easily plug your own implementations in 
if needed:

   require 'net/ssh'
   require 'net/ssh/proxy/http'

   proxy = Net::SSH::Proxy::HTTP.new( 'my.proxy.com', 8000 )
   Net::SSH.start( 'host', :proxy => proxy ) do |session|
     ...
   end

   See the chapter on proxies in the user manual for more details.

* More SFTP protocol coverage (in particular, a file abstraction for 
manipulating files)

Several other features and bugs have been taken care of as well--see the 
ChangeLog for the complete rundown.

As always, you need to be using either Ruby 1.8.2, or you need to have 
the patched OpenSSL module installed (which is available from the 
Net::SSH downloads page).

-- 
Jamis Buck
jgb3 / email.byu.edu
http://www.jamisbuck.org/jamis

"I use octal until I get to 8, and then I switch to decimal."