Net :: SSHを使用して、ログイン直後にユーザーからの入力を必要とするスクリプトを実行するサーバーに接続しようとしています。ユーザーは「1」または「2」を入力する必要があり、その後、ターミナルでいくつかのデータを受信します。
私の問題は、接続はできても、サーバーに「1\n」を送信して出力を受信する方法がわからないことです。
次のコードは「INFO--net.ssh.connection.session[80906b74]:channel_open_confirmation:0 0032768」で停止します。
channel.send_dataの代わりにchannel.exec( "1 \ n")を使用しても、当然のことながら機能しません。
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
何かアイデアはありますか?
前もって感謝します