通过Socks代理使用Git
场景
公司Git服务器只能在内网访问,在公司以外的地方无法直接访问远程Git仓库,但公司的跳板机外网可访问,于是自然想到利用跳板机做Socks代理来使用Git(由于某些不可描述的原因无法访问Github或者网速很慢的朋友,也可以参照此文配置Socks代理来访问)。如下图所示:
图1
步骤
一般情况下我都在我自己的VPS(CentOS 7)上写Code。第一步,先用ssh-gen生成当前用户公钥,如果已有公钥可跳过,将公钥内容,追加到跳板机的~/.ssh/authorized_keys文件末尾,这一步是为下一步的动态端口转发做准备(这样ssh到跳板机无需输入密码)
第二步,先在本地建立一个动态端口转发:
ssh -f -N -D 1080 跳板机用户@跳板机host
ok,此时,本地的1080端口就成了一个Sock4/Socks5代理。
具体ssh参数用途请参考man ssh
第二步,为了让Git调用ssh走这个Socks4代理,我们需要配置~/.ssh/config:
Host 跳板机host ProxyCommand nc --proxy 127.0.0.1:1080 --proxy-type socks4 %h %p
具体ProxyCommand的配置意义请参考man ssh_config
OK,这时候我们再git clone一下仓库,就能成功更新代码啦!
备注
老版本的nc代理参数可能是-x,新版本是--proxy系列,具体可以参考man nc;
上述方案适用于Git走SSH协议;
Git Server端需要提前将客户机的公钥配置好,否则会鉴权失败。如果是Gitlab,登陆到后台即可配置。
相关推荐
projava 2020-11-14
WanKaShing 2020-11-12
airfish000 2020-09-11
tryfind 2020-09-14
yegen00 2020-09-10
kkaazz 2020-09-03
风语者 2020-09-02
BraveWangDev 2020-08-19
lichuanlong00 2020-08-15
gsl 2020-08-15
pandaphinex 2020-08-09
yhuihon 2020-08-09
CheNorton 2020-08-02
xiangqiao 2020-07-28
hpujsj 2020-07-26
hpujsj 2020-07-26
sshong 2020-07-19
BraveWangDev 2020-07-19
annan 2020-07-18