[ANN] Net::SSH 0.1.0

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

In my hurry to package and announce the release of Net::SSH 0.1.0, I forgot to thank a few people: Gabriele Renzi (for the suggestion for the open-uri interface to sftp), and Daniel Hobe and Jochen Immendörfer (for the feedback and patches).

Thanks a ton!

- Jamis

Jamis Buck wrote:

···

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

I have just uploaded net-ssh 0.1.0 to the preliminary Ruby Production
Archive (RPA) repository (http://rubyforge.org/frs/?group_id=265\):

Installation/upgrade is achieved with

$ rpa install net-ssh

and happens atomically, as usual.

=== More information on RPA and rpa-base at
    http://rpa-base.rubyforge.org

$ rpa query -x net-ssh
Matching available ports:
name: net-ssh
version: 0.1.0-1
classification: Top.Library.Development
requires:
description: A pure Ruby module that emulates an SSH client.

This is an experimental release of Net::SSH. It absolutely WILL NOT work
with the version of Ruby's openssl module currently shipped with Ruby
versions < 1.8.2. You must get a patched version of the openssl module
and in stall it (and remove the old module) before using Net::SSH.

The current release of Net::SSH supports:
* the execution of non-interactive processes on the remote host
* a subset of SFTP (list files, get and put files)
* port forwarding, both from a local port to a remote port, and vice versa.
* a command-line key generation utility, called rb-keygen, similar to ssh-keygen

···

On Sun, Aug 15, 2004 at 05:59:23AM +0900, Jamis Buck wrote:

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

--
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com