ssh:send_data后如何发送数据请求?

时间:2011-07-18 09:02:40

标签: ruby

打开远程主机的ssh会话并通过send_data排队一些数据后,如何真正触发将数据发送到远程主机的操作? chan.send_request在V2.0中不起作用(例如:chan.send_request“shell”,nil,true)。一个简单的例子非常有用!

Net::SSH.start('remotehost','user') do |session|
    session.open_channel do |chan|
    chan.send_data "..."
    chan.send_data "..."

    ???

非常感谢!   丹

1 个答案:

答案 0 :(得分:0)

您需要启动一个shell,尝试类似:

chan.request_pty do |ch, success|
  raise "Error requesting pty" unless success
  ch.send_channel_request("shell") do |ch, success|
    raise "Error opening shell" unless success
  end
end

如果要查看命令的输出,则需要注册处理程序:

chan.on_data do |ch, data|
  # work with output here
end

(或标准错误输出使用chan.on_extended_data