Variable: tramp-methods

tramp-methods is a variable defined in tramp.el.gz.

Value

Large value
(("adb"
  (tramp-login-program "adb")
  (tramp-login-args
   (("shell")))
  (tramp-direct-async t)
  (tramp-tmpdir "/data/local/tmp")
  (tramp-default-port 5555))
 ("ftp")
 ("rclone"
  (tramp-mount-args
   ("--no-unicode-normalization" "--dir-cache-time" "0s"))
  (tramp-copyto-args nil)
  (tramp-moveto-args nil)
  (tramp-about-args
   ("--full")))
 ("fcp"
  (tramp-login-program "fsh")
  (tramp-login-args
   (("%h")
    ("-l" "%u")
    ("sh" "-i")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-i")
   ("-c"))
  (tramp-copy-program "fcp")
  (tramp-copy-args
   (("-p" "%k")))
  (tramp-copy-keep-date t))
 ("psftp"
  (tramp-login-program "plink")
  (tramp-login-args
   (("-l" "%u")
    ("-P" "%p")
    ("-ssh")
    ("-t")
    ("%h")
    ("\"")
    ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '")
    ("%l")
    ("\"")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "pscp")
  (tramp-copy-args
   (("-l" "%u")
    ("-P" "%p")
    ("-sftp")
    ("-p" "%k")
    ("-q")))
  (tramp-copy-keep-date t))
 ("pscp"
  (tramp-login-program "plink")
  (tramp-login-args
   (("-l" "%u")
    ("-P" "%p")
    ("-ssh")
    ("-t")
    ("%h")
    ("\"")
    ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '")
    ("%l")
    ("\"")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "pscp")
  (tramp-copy-args
   (("-l" "%u")
    ("-P" "%p")
    ("-scp")
    ("-p" "%k")
    ("-q")
    ("-r")))
  (tramp-copy-keep-date t)
  (tramp-copy-recursive t))
 ("plinkx"
  (tramp-login-program "plink")
  (tramp-login-args
   (("-load")
    ("%h")
    ("-t")
    ("\"")
    ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '")
    ("%l")
    ("\"")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("plink"
  (tramp-login-program "plink")
  (tramp-login-args
   (("-l" "%u")
    ("-P" "%p")
    ("-ssh")
    ("-t")
    ("%h")
    ("\"")
    ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '")
    ("%l")
    ("\"")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("krlogin"
  (tramp-login-program "krlogin")
  (tramp-login-args
   (("%h")
    ("-l" "%u")
    ("-x")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("ksu"
  (tramp-login-program "ksu")
  (tramp-login-args
   (("%u")
    ("-q")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-connection-timeout 10))
 ("doas"
  (tramp-login-program "doas")
  (tramp-login-args
   (("-u" "%u")
    ("-s")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-args
   ("-c"))
  (tramp-connection-timeout 10)
  (tramp-session-timeout 300))
 ("sudo"
  (tramp-login-program "env")
  (tramp-login-args
   (("SUDO_PROMPT=P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":")
    ("sudo")
    ("-u" "%u")
    ("-s")
    ("-H")
    ("%l")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-connection-timeout 10)
  (tramp-session-timeout 300))
 ("sg"
  (tramp-login-program "sg")
  (tramp-login-args
   (("-")
    ("%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-args
   ("-c"))
  (tramp-connection-timeout 10))
 ("su"
  (tramp-login-program "su")
  (tramp-login-args
   (("-")
    ("%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-connection-timeout 10))
 ("nc"
  (tramp-login-program "telnet")
  (tramp-login-args
   (("%h")
    ("%p")
    ("%n")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "nc")
  (tramp-copy-args
   (("-w" "1")
    ("-v")
    ("%h")
    ("%r")))
  (tramp-remote-copy-program "nc")
  (tramp-remote-copy-args
   (("-l")
    ("-p" "%r")
    ("%n"))))
 ("telnet"
  (tramp-login-program "telnet")
  (tramp-login-args
   (("%h")
    ("%p")
    ("%n")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("sshx"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("-t" "-t")
    ("-o" "RemoteCommand=\"%l\"")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("ssh"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-direct-async t)
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("remsh"
  (tramp-login-program "remsh")
  (tramp-login-args
   (("%h")
    ("-l" "%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("rsh"
  (tramp-login-program "rsh")
  (tramp-login-args
   (("%h")
    ("-l" "%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("rsync"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-direct-async t)
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "rsync")
  (tramp-copy-args
   (("-t" "%k")
    ("-p")
    ("-r")
    ("-s")
    ("-c")))
  (tramp-copy-env
   (("RSYNC_RSH")
    ("ssh")
    ("%c")))
  (tramp-copy-keep-date t)
  (tramp-copy-keep-tmpfile t)
  (tramp-copy-recursive t))
 ("scpx"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("-t" "-t")
    ("-o" "RemoteCommand=\"%l\"")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "scp")
  (tramp-copy-args
   (("-P" "%p")
    ("-p" "%k")
    ("%x")
    ("%y")
    ("-q")
    ("-r")
    ("%c")))
  (tramp-copy-keep-date t)
  (tramp-copy-recursive t))
 ("scp"
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-l" "%u")
    ("-p" "%p")
    ("%c")
    ("-e" "none")
    ("%h")))
  (tramp-async-args
   (("-q")))
  (tramp-direct-async t)
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "scp")
  (tramp-copy-args
   (("-P" "%p")
    ("-p" "%k")
    ("%x")
    ("%y")
    ("-q")
    ("-r")
    ("%c")))
  (tramp-copy-keep-date t)
  (tramp-copy-recursive t))
 ("remcp"
  (tramp-login-program "remsh")
  (tramp-login-args
   (("%h")
    ("-l" "%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "rcp")
  (tramp-copy-args
   (("-p" "%k")))
  (tramp-copy-keep-date t))
 ("rcp"
  (tramp-login-program "rsh")
  (tramp-login-args
   (("%h")
    ("-l" "%u")))
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c"))
  (tramp-copy-program "rcp")
  (tramp-copy-args
   (("-p" "%k")
    ("-r")))
  (tramp-copy-keep-date t)
  (tramp-copy-recursive t))
 ("smb"
  (tramp-tmpdir "/C$/Temp")
  (tramp-case-insensitive t))
 ("sshfs"
  (tramp-mount-args
   (("-C")
    ("-p" "%p")
    ("-o" "dir_cache=no")
    ("-o" "transform_symlinks")
    ("-o" "idmap=user,reconnect")))
  (tramp-login-program "ssh")
  (tramp-login-args
   (("-q")
    ("-l" "%u")
    ("-p" "%p")
    ("-e" "none")
    ("-t" "-t")
    ("%h")
    ("%l")))
  (tramp-direct-async t)
  (tramp-remote-shell "/bin/sh")
  (tramp-remote-shell-login
   ("-l"))
  (tramp-remote-shell-args
   ("-c")))
 ("sudoedit"
  (tramp-sudo-login
   (("sudo")
    ("-u" "%u")
    ("-S")
    ("-H")
    ("-p" "Password:")
    ("--")))))

Documentation

Alist of methods for remote files.

This is a list of entries of the form (NAME PARAM1 PARAM2 ...). Each NAME stands for a remote access method. Each PARAM is a pair of the form (KEY VALUE). The following KEYs are defined:

  * tramp-remote-shell
    This specifies the shell to use on the remote host. This
    MUST be a Bourne-like shell. It is normally not necessary to
    set this to any value other than "/bin/sh": Tramp wants to
    use a shell which groks tilde expansion, but it can search
    for it. Also note that "/bin/sh" exists on all Unixen,
    this might not be true for the value that you decide to use.
    You Have Been Warned.

  * tramp-remote-shell-login
    This specifies the arguments to let tramp-remote-shell run
    as a login shell. It defaults to ("-l"), but some shells,
    like ksh, require another argument. See
    tramp-connection-properties for a way to overwrite the
    default value.

  * tramp-remote-shell-args
    For implementation of shell-command, this specifies the
    arguments to let tramp-remote-shell run a single command.

  * tramp-login-program
    This specifies the name of the program to use for logging in to the
    remote host. This may be the name of rsh or a workalike program,
    or the name of telnet or a workalike, or the name of su or a workalike.

  * tramp-login-args
    This specifies a list of lists of arguments to pass to the
    above mentioned program. You normally want to put each
    argument in an individual string, i.e.
    ("-a" "-b") rather than ("-a -b").

    "%" followed by a letter are expanded in the arguments as
    follows:

    - "%h" is replaced by the host name
    - "%u" is replaced by the user name
    - "%p" is replaced by the port number
    - "%%" can be used to obtain a literal percent character.

    If a sub-list containing "%h", "%u" or "%p" is
    unchanged after expansion (i.e. no host, no user or no port
    were specified), that sublist is not used. For e.g.

    '(("-a" "-b") ("-l" "%u"))

    that means that ("-l" "%u") is used only if the user was
    specified, and it is thus effectively optional.

    Other expansions are:

    - "%l" is replaced by the login shell tramp-remote-shell
      and its parameters.
    - "%t" is replaced by the temporary file name produced with
      tramp-make-tramp-temp-file.
    - "%k" indicates the keep-date parameter of a program, if exists.
    - "%c" adds additional tramp-ssh-controlmaster-options(var)/tramp-ssh-controlmaster-options(fun)
      options for the first hop.
    - "%n" expands to "2>/dev/null".
    - "%x" is replaced by the tramp-scp-strict-file-name-checking(var)/tramp-scp-strict-file-name-checking(fun)
      argument if it is supported.
    - "%y" is replaced by the tramp-scp-force-scp-protocol(var)/tramp-scp-force-scp-protocol(fun)
      argument if it is supported.

    The existence of tramp-login-args, combined with the
    absence of tramp-copy-args, is an indication that the
    method is capable of multi-hops.

  * tramp-async-args
    When an asynchronous process is started, we know already that
    the connection works. Therefore, we can pass additional
    parameters to suppress diagnostic messages, in order not to
    tamper the process output.

  * tramp-direct-async
    Whether the method supports direct asynchronous processes.
    Until now, just "ssh"-based and "adb"-based methods do.

  * tramp-copy-program
    This specifies the name of the program to use for remotely copying
    the file; this might be the absolute filename of scp or the name of
    a workalike program. It is always applied on the local host.

  * tramp-copy-args
    This specifies the list of parameters to pass to the above mentioned
    program, the hints for tramp-login-args also apply here.

  * tramp-copy-env
     A list of environment variables and their values, which will
     be set when calling tramp-copy-program.

  * tramp-remote-copy-program
    The listener program to be applied on remote side, if needed.

  * tramp-remote-copy-args
    The list of parameters to pass to the listener program, the hints
    for tramp-login-args also apply here. Additionally, "%r" could
    be used here and in tramp-copy-args. It denotes a randomly
    chosen port for the remote listener.

  * tramp-copy-keep-date
    This specifies whether the copying program when the preserves the
    timestamp of the original file.

  * tramp-copy-keep-tmpfile
    This specifies whether a temporary local file shall be kept
    for optimization reasons (useful for "rsync" methods).

  * tramp-copy-recursive
    Whether the operation copies directories recursively.

  * tramp-default-port
    The default port of a method.

  * tramp-tmpdir
    A directory on the remote host for temporary files. If not
    specified, "/tmp" is taken as default.

  * tramp-connection-timeout
    This is the maximum time to be spent for establishing a connection.
    In general, the global default value shall be used, but for
    some methods, like "su" or "sudo", a shorter timeout
    might be desirable.

  * tramp-session-timeout
    How long a Tramp connection keeps open before being disconnected.
    This is useful for methods like "su" or "sudo", which
    shouldn't run an open connection in the background forever.

  * tramp-case-insensitive
    Whether the remote file system handles file names case insensitive.
    Only a non-nil value counts, the default value nil means to
    perform further checks on the remote host. See
    tramp-connection-properties for a way to overwrite this.

  * tramp-mount-args
  * tramp-copyto-args
  * tramp-moveto-args
  * tramp-about-args
    These parameters, a list of list like tramp-login-args, are used
    for the "rclone" method, and are appended to the respective
    "rclone" commands. In general, they shouldn't be changed inside
    tramp-methods; it is recommended to change their values via
    tramp-connection-properties. Unlike tramp-login-args there is
     no pattern replacement.

What does all this mean? Well, you should specify tramp-login-program
for all methods; this program is used to log in to the remote site. Then, there are two ways to actually transfer the files between the local and the remote side. One way is using an additional scp-like program. If you want to do this, set tramp-copy-program in the method.

Another possibility for file transfer is inline transfer, i.e. the file is passed through the same buffer used by tramp-login-program. In this case, the file contents need to be protected since the tramp-login-program might use escape codes or the connection might not be eight-bit clean. Therefore, file contents are encoded for transit. See the variables tramp-local-coding-commands and tramp-remote-coding-commands for details.

So, to summarize: if the method is an out-of-band method, then you must specify tramp-copy-program and tramp-copy-args. If it is an inline method, then these two parameters should be nil.

Notes:

All these arguments can be overwritten by connection properties. See Info node (tramp) Predefined connection information.

When using su, sudo or doas the phrase "open connection to a remote host" sounds strange, but it is used nevertheless, for consistency. No connection is opened to a remote host, but su, sudo or doas is started on the local host. You should specify a remote host localhost or the name of the local host. Another host name is useful only in combination with tramp-default-proxies-alist.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defvar tramp-methods nil
  "Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
Each NAME stands for a remote access method.  Each PARAM is a
pair of the form (KEY VALUE).  The following KEYs are defined:

  * `tramp-remote-shell'
    This specifies the shell to use on the remote host.  This
    MUST be a Bourne-like shell.  It is normally not necessary to
    set this to any value other than \"/bin/sh\": Tramp wants to
    use a shell which groks tilde expansion, but it can search
    for it.  Also note that \"/bin/sh\" exists on all Unixen,
    this might not be true for the value that you decide to use.
    You Have Been Warned.

  * `tramp-remote-shell-login'
    This specifies the arguments to let `tramp-remote-shell' run
    as a login shell.  It defaults to (\"-l\"), but some shells,
    like ksh, require another argument.  See
    `tramp-connection-properties' for a way to overwrite the
    default value.

  * `tramp-remote-shell-args'
    For implementation of `shell-command', this specifies the
    arguments to let `tramp-remote-shell' run a single command.

  * `tramp-login-program'
    This specifies the name of the program to use for logging in to the
    remote host.  This may be the name of rsh or a workalike program,
    or the name of telnet or a workalike, or the name of su or a workalike.

  * `tramp-login-args'
    This specifies a list of lists of arguments to pass to the
    above mentioned program.  You normally want to put each
    argument in an individual string, i.e.
    (\"-a\" \"-b\") rather than (\"-a -b\").

    \"%\" followed by a letter are expanded in the arguments as
    follows:

    - \"%h\" is replaced by the host name
    - \"%u\" is replaced by the user name
    - \"%p\" is replaced by the port number
    - \"%%\" can be used to obtain a literal percent character.

    If a sub-list containing \"%h\", \"%u\" or \"%p\" is
    unchanged after expansion (i.e. no host, no user or no port
    were specified), that sublist is not used.  For e.g.

    \\='((\"-a\" \"-b\") (\"-l\" \"%u\"))

    that means that (\"-l\" \"%u\") is used only if the user was
    specified, and it is thus effectively optional.

    Other expansions are:

    - \"%l\" is replaced by the login shell `tramp-remote-shell'
      and its parameters.
    - \"%t\" is replaced by the temporary file name produced with
      `tramp-make-tramp-temp-file'.
    - \"%k\" indicates the keep-date parameter of a program, if exists.
    - \"%c\" adds additional `tramp-ssh-controlmaster-options'
      options for the first hop.
    - \"%n\" expands to \"2>/dev/null\".
    - \"%x\" is replaced by the `tramp-scp-strict-file-name-checking'
      argument if it is supported.
    - \"%y\" is replaced by the `tramp-scp-force-scp-protocol'
      argument if it is supported.

    The existence of `tramp-login-args', combined with the
    absence of `tramp-copy-args', is an indication that the
    method is capable of multi-hops.

  * `tramp-async-args'
    When an asynchronous process is started, we know already that
    the connection works.  Therefore, we can pass additional
    parameters to suppress diagnostic messages, in order not to
    tamper the process output.

  * `tramp-direct-async'
    Whether the method supports direct asynchronous processes.
    Until now, just \"ssh\"-based and \"adb\"-based methods do.

  * `tramp-copy-program'
    This specifies the name of the program to use for remotely copying
    the file; this might be the absolute filename of scp or the name of
    a workalike program.  It is always applied on the local host.

  * `tramp-copy-args'
    This specifies the list of parameters to pass to the above mentioned
    program, the hints for `tramp-login-args' also apply here.

  * `tramp-copy-env'
     A list of environment variables and their values, which will
     be set when calling `tramp-copy-program'.

  * `tramp-remote-copy-program'
    The listener program to be applied on remote side, if needed.

  * `tramp-remote-copy-args'
    The list of parameters to pass to the listener program, the hints
    for `tramp-login-args' also apply here.  Additionally, \"%r\" could
    be used here and in `tramp-copy-args'.  It denotes a randomly
    chosen port for the remote listener.

  * `tramp-copy-keep-date'
    This specifies whether the copying program when the preserves the
    timestamp of the original file.

  * `tramp-copy-keep-tmpfile'
    This specifies whether a temporary local file shall be kept
    for optimization reasons (useful for \"rsync\" methods).

  * `tramp-copy-recursive'
    Whether the operation copies directories recursively.

  * `tramp-default-port'
    The default port of a method.

  * `tramp-tmpdir'
    A directory on the remote host for temporary files.  If not
    specified, \"/tmp\" is taken as default.

  * `tramp-connection-timeout'
    This is the maximum time to be spent for establishing a connection.
    In general, the global default value shall be used, but for
    some methods, like \"su\" or \"sudo\", a shorter timeout
    might be desirable.

  * `tramp-session-timeout'
    How long a Tramp connection keeps open before being disconnected.
    This is useful for methods like \"su\" or \"sudo\", which
    shouldn't run an open connection in the background forever.

  * `tramp-case-insensitive'
    Whether the remote file system handles file names case insensitive.
    Only a non-nil value counts, the default value nil means to
    perform further checks on the remote host.  See
    `tramp-connection-properties' for a way to overwrite this.

  * `tramp-mount-args'
  * `tramp-copyto-args'
  * `tramp-moveto-args'
  * `tramp-about-args'
    These parameters, a list of list like `tramp-login-args', are used
    for the \"rclone\" method, and are appended to the respective
    \"rclone\" commands.  In general, they shouldn't be changed inside
    `tramp-methods'; it is recommended to change their values via
    `tramp-connection-properties'.  Unlike `tramp-login-args' there is
     no pattern replacement.

What does all this mean?  Well, you should specify `tramp-login-program'
for all methods; this program is used to log in to the remote site.  Then,
there are two ways to actually transfer the files between the local and the
remote side.  One way is using an additional scp-like program.  If you want
to do this, set `tramp-copy-program' in the method.

Another possibility for file transfer is inline transfer, i.e. the
file is passed through the same buffer used by `tramp-login-program'.  In
this case, the file contents need to be protected since the
`tramp-login-program' might use escape codes or the connection might not
be eight-bit clean.  Therefore, file contents are encoded for transit.
See the variables `tramp-local-coding-commands' and
`tramp-remote-coding-commands' for details.

So, to summarize: if the method is an out-of-band method, then you
must specify `tramp-copy-program' and `tramp-copy-args'.  If it is an
inline method, then these two parameters should be nil.

Notes:

All these arguments can be overwritten by connection properties.
See Info node `(tramp) Predefined connection information'.

When using `su', `sudo' or `doas' the phrase \"open connection to
a remote host\" sounds strange, but it is used nevertheless, for
consistency.  No connection is opened to a remote host, but `su',
`sudo' or `doas' is started on the local host.  You should
specify a remote host `localhost' or the name of the local host.
Another host name is useful only in combination with
`tramp-default-proxies-alist'.")