Why are the arguments supplied for the command run through ssh interpreted by shell before they are passed to the command on the server side?

Yuri yuri at rawbw.com
Sun Jan 12 03:19:44 AEDT 2020

On 2020-01-11 05:38, Colin Watson wrote:
> I do think it's a problem that, as far as I can see, the exact behaviour
> of ssh command interpretation isn't explained anywhere in its man pages,
> even though it seems like the only possibility if you understand the
> protocol.  ssh(1) just says "If command is specified, it is executed on
> the remote host instead of a login shell", but that doesn't provide any
> hint about what quoting of metacharacters might be required, which is
> important since ssh is often used as plumbing.

A practical problem stemming from this is "how to pass a string to the 
server verbatim". I just escaped every character with '\'. But is this 
excessive, or generally sufficient? I can't tell since it isn't clear 
how the arguments are processed, and by what shell. It's not documented.


More information about the openssh-unix-dev mailing list