threads / discuss / 55981

About the usage of core.gitproxy.

Subject: About the usage of core.gitproxy.

## tl;dr

2 messages between Jun 21, 2021 and Jun 21, 2021.

replies: 1people: 2as markdown or json

Hongyi Zhao· Jun 21, 2021, 21:58 UTC · lore
On Ubuntu 20.04, I noticed the following document for `core.gitProxy':
$ man git-config |egrep -A13 -i '^[ ]*core.gitproxy'
       core.gitProxy
           A "proxy command" to execute (as command host port) instead
of establishing direct connection to
           the remote server when using the Git protocol for fetching.
If the variable value is in the
           "COMMAND for DOMAIN" format, the command is applied only on
hostnames ending with the specified
           domain string. This variable may be set multiple times and
is matched in the given order; the
           first match wins.
           Can be overridden by the GIT_PROXY_COMMAND environment
variable (which always applies
           universally, without the special "for" handling).
           The special string none can be used as the proxy command to
specify that no proxy be used for a
           given domain pattern. This is useful for excluding servers
inside a firewall from proxy use,
           while defaulting to a common proxy for external domains.

For my case, I've a local socks5 proxy running on "127.0.0.1:18888", how should I set the above option so that the following command can pick up this proxy:

$ git clone git@github.com:torvalds/linux.git
Regards
-- 
Assoc. Prof. Hongyi Zhao <hongyi.zhao@gmail.com>
Theory and Simulation of Materials
Hebei Vocational University of Technology and Engineering
NO. 552 North Gangtie Road, Xingtai, China
brian m. carlson· Jun 21, 2021, 23:33 UTC · re: Hongyi Zhao · lore

Re: About the usage of core.gitproxy.

On 2021-06-21 at 21:58:29, Hongyi Zhao wrote:
Show 23 quoted lines
> On Ubuntu 20.04, I noticed the following document for `core.gitProxy':
> 
> $ man git-config |egrep -A13 -i '^[ ]*core.gitproxy'
>        core.gitProxy
>            A "proxy command" to execute (as command host port) instead
> of establishing direct connection to
>            the remote server when using the Git protocol for fetching.
> If the variable value is in the
>            "COMMAND for DOMAIN" format, the command is applied only on
> hostnames ending with the specified
>            domain string. This variable may be set multiple times and
> is matched in the given order; the
>            first match wins.
> 
>            Can be overridden by the GIT_PROXY_COMMAND environment
> variable (which always applies
>            universally, without the special "for" handling).
> 
>            The special string none can be used as the proxy command to
> specify that no proxy be used for a
>            given domain pattern. This is useful for excluding servers
> inside a firewall from proxy use,
>            while defaulting to a common proxy for external domains.

This configuration option is for the plain, unencrypted Git protocol usually served on port 9418. Almost nobody uses that these days, though, since it is unencrypted. This configuration option doesn't have any effect on HTTPS or SSH operations.

Show 5 quoted lines
> For my case, I've a local socks5 proxy running on "127.0.0.1:18888",
> how should I set the above option so that the following command can
> pick up this proxy:
> 
> $ git clone git@github.com:torvalds/linux.git

In this case, you need SSH to tunnel through a SOCKS proxy. According to [0], you can do this with the following data in your ~/.ssh/config:

  Host github.com
    ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p
If you want to do this as a one-off, you can also do this:
  GIT_SSH_COMMAND='ssh -oProxyCommand="/usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p"' \
    git clone git@github.com:torvalds/linux.git

Note that that requires a POSIX shell; I don't think it will work under CMD or PowerShell.

[0] https://superuser.com/questions/454210/how-can-i-use-ssh-with-a-socks-5-proxy
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

← back to recent threads