Help with net-ssh 2.0


I am trying to use net-ssh for executing unix level commands using
net-ssh across many servers. I am looking for an example that would
allow me to use net-ssh similar to EXPECT.

As a first step I tried the following:


require ‘rubygems’
require ‘net/ssh’

Net::SSH.start(‘myhostname’, ‘username’, :password => “password”) do

#I need to sudo further into a different account
#How do I open a channel with PTY for this as the
#sudo fails without a proper terminal.

ssh.open_channel do |channel|

    channel.on_data { |ch, data|     puts "stdout: #{data}" }
    channel.on_extended_data { |ch, type, data| puts "stderr:

#{data}" }

    #The following command produces output
    channel.exec "hostname"

    #The following doesnot produce any output
    channel.exec "uptime"


#Not sure what is the purpose of the next statement


Would anyone please show me an example script of how to open a PTY
channel to make the sudo succeed and subsequently send commands and
receive output from stdout and stderror.


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs