[Bug 3652] New: KnownHostsCommand should expand tokens and environment variables on first argument
bugzilla-daemon at mindrot.org
bugzilla-daemon at mindrot.org
Wed Jan 10 20:18:30 AEDT 2024
https://bugzilla.mindrot.org/show_bug.cgi?id=3652
Bug ID: 3652
Summary: KnownHostsCommand should expand tokens and environment
variables on first argument
Product: Portable OpenSSH
Version: 9.6p1
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P5
Component: ssh
Assignee: unassigned-bugs at mindrot.org
Reporter: mindrot.bugzilla at accounts.evybongers.nl
Per ssh_config(5), KnownHostsCommand accepts tokens and will expand
environment variables for its arguments.
> Arguments to KnownHostsCommand accept the tokens described in the “TOKENS” section.
> Arguments to some keywords can be expanded at runtime from environment variables on the client by enclosing them in ${}, for example ${HOME}/.ssh would refer to the user's .ssh directory. [...] The keywords CertificateFile, ControlPath, IdentityAgent, IdentityFile, KnownHostsCommand, and UserKnownHostsFile support environment variables.
In the implementation[1] the first argument (script or binary to be
invoked) is excluded from being parsed. While the documentation quoted
above can be interpreted such that this is the intended behaviour, the
documentation for other options uses the same phrasing and will accept
tokens and environment variables on the first (or only) argument, for
example ControlPath, which only accepts a single argument as value.
> Arguments to ControlPath may use the tilde syntax to refer to a user's home directory, the tokens described in the “TOKENS” section and environment variables as described in the “ENVIRONMENT VARIABLES” section.
Therefore, I'm inclined to believe that first argument to
KnownHostsCommand should be parsed for tokens and environment
variables.
A use case for using a token or environment variable for this keyword
would be to invoke a script or command that is found relative to a
user's home directory in a portable manner, for example:
${HOME}/.local/bin/get_host_keys <args> (or the token equivalent
%d/.local/bin/get_host_keys <args>)
[1]
https://github.com/openssh/openssh-portable/blob/master/sshconnect.c#L885-L898
P.s.: I'm not sure about the severity of this issue, which is why I
listed it as enhancement.
--
You are receiving this mail because:
You are watching the assignee of the bug.
More information about the openssh-bugs
mailing list