2

ruby の net ssh でコマンドをリモートで実行しようとしています。出力と終了コードが必要です。このトピックには他のスタック オーバーフロー スレッドがありますが、承認された解決策は機能しません。一部の人々は net-ssh-shell gem の使用を提案しましたが、試してみると、このパッケージが net-ssh パッケージのバージョンと競合しているというエラーが表示されました...これが私が持っているものです:

  Net::SSH.start(remote_ip, username,:keys => [ssh_key_path], :verbose => :debug) do |ssh|
    cmd = "blah bla"
    result = ssh.exec!(cmd)
    puts result
  end

動作しますが、失敗しても例外は発生しません。また、チャネルを使用して終了コードを取得しようとしましたが、常に 0 が返されます。

channel.on_request("exit-status") do |ch,data|
  exit_code = data.read_long
end

私を助けてください。インターネット上の間違った情報に基づいて、すでにいくつかのことを試しました。

4

1 に答える 1