On Sat, Apr 13 2019, Randall S. Becker wrote: > I am encountering a problem on one of our NonStop platform variants where > the GIT_SSH_COMMAND string is not being broken into constituent parts. This > is causing SSH to not run properly. As background, SSH is not in a standard > location and has non-standard required arguments. This also occurs with > core.sshCommand. The situation is: > > git config --global core.sshCommand '/G/system/zssh/sshossz5 -Q' > > which correctly sets .gitconfig as: > > [core] > sshCommand = /G/system/zssh/sshossz5 -Q > > When git is run with GIT_TRACE=true GIT_PACKET_TRACE=true git fetch > > We get the partial trace: > 14:19:56.027088 trace: built-in: git fetch > 14:19:56.029895 trace: run_command: '/G/system/zssh/sshossz5 -Q' -G > user@host > > The same trace on our systems that actually do work results in: > 14:19:56.029895 trace: run_command: '/G/system/zssh/sshossz5' '-Q' -G > user@host > > I need help resolving why this is happening (as in where to look and debug > the situation). This doesn't seem to be documented *explicitly* (except between the lines & inferred), but it's only supported to pass a *command* there, i.e. the path of the ssh binary. See the code around get_ssh_command() in connect.c. The whole env/config value we look up gets passed as one. So if you need arguments you need to create a wrapper script and set ssh command to that script.