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."