From: saga99x Date: 2007-05-10T16:40:04+09:00 Subject: Net::SSH exec command on remote host I try to use Net::SSH to exec command on remote host. A session was openned and a few command should be exec and get the output. It always failed to get the output of second cmd no matter what command it is. Here is the code def do_cmd(s, cmd) #session, command s.open_channel do |channel| channel.on_data do |ch, data| puts "#{data}" end channel.exec cmd, true end end session = Net::SSH.start(h,u,p) #hostname, userid, passwd do_cmd(session, "version") # first cmd do_cmd(session, "version") # 2nd cmd session.loop session.close Here is the error: /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/packet-stream.rb: 202:in `<<': can't convert nil into String (TypeError) from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ packet-stream.rb:202:in `read' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ packet-stream.rb:153:in `get' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ packet-stream.rb:147:in `synchronize' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ packet-stream.rb:147:in `get' from /usr/local/lib/ruby/site_ruby/1.8/needle/lifecycle/ proxy.rb:60:in `__send__' from /usr/local/lib/ruby/site_ruby/1.8/needle/lifecycle/ proxy.rb:60:in `method_missing' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ session.rb:247:in `wait_for_message' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ session.rb:242:in `loop' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/transport/ session.rb:242:in `wait_for_message' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/connection/ driver.rb:148:in `process' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/connection/ driver.rb:138:in `loop' from /usr/local/lib/ruby/site_ruby/1.8/net/ssh/session.rb: 164:in `loop' Could anyone give me a hint?