From the Net::SSH docs for Channel#exec
In this case, success means that the command is being executed, not that it has completed,...
I'm wondering if you're getting success because it is successfully sending a request, and Net::SSH doesn't care if that request is complete or not. It did it's job, so it's a success.
combine it with something like: on data
channel.on_data do |ch, data|
puts "what am i really getting back: #{data.inspect}"
end