我正在尝试使用 Net::SSH 连接到服务器,该服务器在登录后立即执行需要用户输入的脚本。用户必须输入“1”或“2”,然后通过终端接收一些数据。
我的问题是,虽然我能够连接,但我想不出一种将“1\n”发送到服务器并接收输出的方法。
以下代码在“INFO -- net.ssh.connection.session[80906b74]: channel_open_confirmation: 0 0 0 32768”处停止。
毫不奇怪,使用 channel.exec("1\n") 代替 channel.send_data 也不起作用。
Net::SSH.start('host', 'user', :password => "pass", :auth_methods => ["password"], :verbose => :debug) do |session|
session.open_channel do |channel|
channel.on_data do |ch, data|
STDOUT.print data
end
channel.send_data( "1\n")
end
session.loop
end
任何想法,任何人?
提前致谢