def interactive_ssh(run=true)
      debug "interactive_ssh with keys: #{@rye_opts[:keys].inspect}"
      run = false unless STDIN.tty?
      args = []
      @rye_opts[:keys].each { |key| args.push *[:i, key] }
      args << "#{@rye_user}@#{@rye_host}"
      cmd = Rye.prepare_command("ssh", args)
      return cmd unless run
      system(cmd)
    end
def interactive_ssh(run=true)
      debug "interactive_ssh with keys: #{@rye_opts[:keys].inspect}"
      run = false unless STDIN.tty?
      args = []
      @rye_opts[:keys].each { |key| args.push *[:i, key] }
      args << "#{@rye_user}@#{@rye_host}"
      cmd = Rye.prepare_command("ssh", args)
      return cmd unless run
      system(cmd)
    end
If STDIN.tty? is true (i.e. if we're connected to a terminal
 with a human at the helm), this will open an SSH connection
 via the regular SSH command (via a call to system). This
 requires the SSH command-line executable (ssh).

 If STDIN.tty? is false or +run+ is false, this will return
 the SSH command (a String) that would have been run.

 NOTE: As of Rye 0.9 you can run interactive sessions with
 rye by calling any shell method without arguments.

 e.g.

     rbox = Rye::Box.new 'somemachine'
     rbox.bash

 TODO: refactor to use net_ssh_exec! in 0.9