async run(command, { tty: ttyOption, cwd, ...cmdOptions } = {}) {
    let tty = ttyOption
    if (command.startsWith('sudo') && typeof ttyOption === 'undefined') {
      deprecateV3('You should set "tty" option explictly when you use "sudo".')
      tty = true
    }
    this.log('Running "%s" on host "%s".', command, this.remote.host)
    const cmd = this.buildSSHCommand(command, { tty, cwd })
    return this.runLocally(cmd, cmdOptions)
  }
Run a command remotely using SSH.
All exec options are also available.

@see https://nodejs.org/dist/latest-v8.x/docs/api/child_process.html#child_process_child_process_exec_command_options_callback
@param {string} command Command to run
@param {object} [options] Options
@param {boolean} [options.tty] Force a TTY allocation.
@returns {ExecResult}
@throws {ExecError}