Arguments, whitespace, splitting, and shells (& compatibility)
Ángel González
keisial at gmail.com
Sun Feb 21 10:31:10 AEDT 2016
On 12/02/16 12:34, Philipp Marek wrote:
> Quite some time ago there was a bit of discussion whether SSH can change
> it's (information-destroying) way of passing commands to the remote host
> (whitespace in an argument gets split up, too).
>
> [[To reproduce:
> # echo "yes no"
> yes no
> but
> # ssh<host> echo "yes no"
> yes no
> ]]
>
> For other problematic things, check "scp" for filenames containing spaces.
Note that ssh is supposed to accept a single argument (but all of us
abuse that
several parameters are passed to the remote side ☺).
> Now, I'm well aware that the default for so many years can't be changed
> (easily); but how about a new option that repairs that behaviour? This
> way new scripts can just add that, and don't have to work around broken
> tools ;/ (sorry, but it's really cumbersome).
>
>
> I believe there was a patch already; googling found me the (a) old
> discussion at http://www.gossamer-threads.com/lists/openssh/dev/9249,
> but the patch (if it exists, perhaps I'm still misremembering) escaped
> me.
>
>
> Please, let's try to find a solution for that...
> if not for any other reasons, then to make "ssh" a simple cloud-provider, too ;)
A new option seems about the right way to fix it, since the local ssh
would need to
know the kind of shell used by the remote system. But if it had a
configuration option:
RemoteShellQuoting POSIX
it could add its own quoting to preserve all the received arguments when
passed to a POSIX shell.
It should be simple to code.
Best regards
More information about the openssh-unix-dev
mailing list