From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "Randall S. Becker" <rsbecker@nexbridge.com>, git@vger.kernel.org
Subject: Re: [BUG] GIT_SSH_COMMAND is not being decomposed
Date: Sat, 13 Apr 2019 23:47:36 +0200 [thread overview]
Message-ID: <20190413214736.GD15936@szeder.dev> (raw)
In-Reply-To: <874l71fxmg.fsf@evledraar.gmail.com>
On Sat, Apr 13, 2019 at 10:39:35PM +0200, Ævar Arnfjörð Bjarmason wrote:
>
> 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.
'man git' it quite explicit about this:
$GIT_SSH_COMMAND takes precedence over $GIT_SSH, and is interpreted
by the shell, which allows additional arguments to be included.
$GIT_SSH on the other hand must be just the path to a program (which
can be a wrapper shell script, if additional arguments are needed).
Quick test shows that the implementation agrees with the
documentation:
$ GIT_TRACE=2 GIT_SSH_COMMAND='/usr/bin/ssh -v' git push -n github
23:39:02.048870 git.c:419 trace: built-in: git push -n github
23:39:02.060821 run-command.c:643 trace: run_command: unset GIT_PREFIX; '/usr/bin/ssh -v' git@github.com 'git-receive-pack '\''/szeder/git'\'''
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/szeder/.ssh/config
<... snipt rest of the verbose ssh output ...>
And the config setting works, too:
$ GIT_TRACE=2 git -c core.sshCommand='/usr/bin/ssh -v' push -n github
23:42:55.277776 git.c:439 trace: built-in: git push -n github
23:42:55.285149 run-command.c:663 trace: run_command: unset GIT_CONFIG_PARAMETERS GIT_PREFIX; '/usr/bin/ssh -v' git@github.com 'git-receive-pack '\''/szeder/git'\'''
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/szeder/.ssh/config
<...>
Note that in both cases the trace shows '/usr/bin/ssh -v', IOW neither
$GIT_SSH_COMMAND nor 'core.sshCommand' are broken up.
But this is just an avarage Linux box, so perhaps this is a
NonStop-specific issue?
> 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.
next prev parent reply other threads:[~2019-04-13 21:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-13 20:27 [BUG] GIT_SSH_COMMAND is not being decomposed Randall S. Becker
2019-04-13 20:39 ` Ævar Arnfjörð Bjarmason
2019-04-13 20:57 ` Randall S. Becker
2019-04-13 21:47 ` SZEDER Gábor [this message]
2019-04-14 14:34 ` Randall S. Becker
2019-04-15 19:20 ` Randall S. Becker
2019-04-15 21:14 ` Andreas Schwab
2019-04-15 22:34 ` Randall S. Becker
2019-04-16 4:24 ` Junio C Hamano
2019-04-15 21:30 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190413214736.GD15936@szeder.dev \
--to=szeder.dev@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=rsbecker@nexbridge.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.