-
-
Save bynil/2126e374db8495fe33de2cbc543149ae to your computer and use it in GitHub Desktop.
| Port: 1080 | |
| 1. Create a file /YOUR PATH/gitproxy.sh with content: | |
| #!/bin/sh | |
| nc -X 5 -x 127.0.0.1:1080 "$@" | |
| 2. Edit your ~/.gitconfig | |
| # For git:// | |
| [core] | |
| gitproxy=/YOUR PATH/gitproxy.sh | |
| # For http(s):// | |
| [http] | |
| proxy=socks5://127.0.0.1:1080 | |
| [https] | |
| proxy=socks5://127.0.0.1:1080 | |
| 3. Edit your /etc/ssh/ssh_config to change global setting (or ~/.ssh/config for special host) | |
| # For ssh:// | |
| ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p |
I ended up with adding SSH proxy command in ~/.ssh/config.
I found it rather convenient since it works for both Linux and Windows:
Host github.com
ProxyCommand connect -H 127.0.0.1:1070 %h %p
You just need Privoxy that transforms a SOCKS proxy into HTTP proxy. I made it listen on port 1070.
It will always use the 1070 HTTP proxy to establish SSH connection.
I ended up with adding SSH proxy command in
~/.ssh/config.I found it rather convenient since it works for both Linux and Windows:
Host github.com ProxyCommand connect -H 127.0.0.1:1070 %h %pYou just need Privoxy that transforms a SOCKS proxy into HTTP proxy. I made it listen on port
1070.It will always use the
1070HTTP proxy to establish SSH connection.
Yes, once for all.
My config over socks5 proxy:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github-ssh.key
ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:6153 %h %p
Nice!
error appear /
Have already downloaded socks5 list as socks5.txt
Socks5 Proxy file path(socks5.txt):
Here's a short way to do this:
export GIT_SSH_COMMAND='ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p"' git ...
It works!
sorry to ask question here. But, what's the point of setting ssh config with proxycommand when you already create a proxy with nc?
sorry to ask question here. But, what's the point of setting ssh config with proxycommand when you already create a proxy with nc?
When you use nc or connect command, a tunnel is established to proxy the network traffic. But without setting ProxyCommand, SSH is not aware of this tunnel. You have to explicitly tell it to use this tunnel for data transmission.
@yuanalexwu yyds
Here's a short way to do this: