サーバーに ssh してコマンドを実行するために使用net/ssh
しています。サーバーへのキーベースのアクセスがあり、ターミナルで通常どおり ssh に接続できます。私が知りたいのは、これの原因です。それが発生した場合にそれをキャッチして接続を再試行する方法はありますか?
エラー:
/home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/packet_stream.rb:87:in `next_packet': connection closed by remote host (Net::SSH::Disconnect)
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:172:in `block in poll_message'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:167:in `loop'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:167:in `poll_message'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:204:in `block in wait'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:202:in `loop'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:202:in `wait'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:81:in `initialize'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh.rb:200:in `new'
from /home/me/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh.rb:200:in `start'
from file.rb:58:in `block in <main>'
from file.rb:35:in `each'
from file.rb:35:in `<main>'
それを引き起こすコード:
Net::SSH.start(ip, "user") do |ssh|
result = ssh.exec!("ls -lhtr")
puts result
end