config: incorrect parsing of the `ProxyCommand` configuration option
It seems like there are two problems when parsing the
ProxyCommand option in configuration files.
When using a configuration like this:
Host myHost ProxyCommand "command" arg
ProxyCommand which ends up being run is
command (without quotes) and not
This looks like two different problems when using a command that starts with
- only the first token (until the closing
") is parsed
- the quotes are removed from the string
For the first one, it is said in the part of the
ssh_config manual page that describes
ProxyCommand that the command string extends to the end of the line.
Concerning the second problem, I believe
" should not be treated as a special case and the
" should not be removed from the command string because it would break if the command had spaces because
"/bin/with spaces" would be executed as a command
/bin/with with an argument
spaces which is not the expected behavior.
Both problems come from the
ssh_config_get_cmd function call in
ssh_config_parse_line which only returns the first token of the line when the first non-blank character is a
" and removes the quoting.