I'm trying to write a Ruby script that will ssh over to a server, run a given command, and fetch the output from it. Here's what I've got so far, mostly adapted from the Programming Ruby book:
require 'pty'
require 'expect'
$expect_verbose = true
PTY.spawn("ssh [email protected]") do |reader, writer, pid|
reader.expect(/[email protected]'s password:.*/)
writer.puts("password")
reader.expect(/.*/)
writer.puts("ls -l")
reader.expect(/.*/)
answer = reader.gets
puts "Answer = #{answer}"
end
Unfortunately all I'm getting back is this:
Answer = .y's password:
Any idea what I've done wrong and how to alleviate this?