We have a large shared ssh config that is shared between many company employees. A few of the entries have items like Host bla+* ProxyCommand ssh -q bla-jumpbox nc $(sed 's@bla+@@; s@.blahnet@@'<<<%h).blahnet %p Which usually works perfectly. Today I learned that some users use shells where this is not valid syntax (fish). As a temporary workaround I advised the user to try to alias `ssh` and `scp` so that they are prefixed with `SHELL=/bin/sh`. Obviously we would make all of these wrapped with `sh -c "...."` but that will make the configs less readable and we also would probably miss some because the user adding an entry is most likely the rare `fish` user. Suggestion: Add an ssh_config keyword such as `LocalShell` to override current logic when determining local shell to use when executing: - ProxyCommand, - LocalCommand, & - Match exec statements NOTE: this is about the *LOCAL* (client side) shell.
Description Correction: Replace ~adding an entry is most likely the rare `fish` user.~ with adding an entry is most likely *not* the rare `fish` user.