通过Socks代理使用Git

虚烬
• 阅读 3892

场景

公司Git服务器只能在内网访问,在公司以外的地方无法直接访问远程Git仓库,但公司的跳板机外网可访问,于是自然想到利用跳板机做Socks代理来使用Git(由于某些不可描述的原因无法访问Github或者网速很慢的朋友,也可以参照此文配置Socks代理来访问)。如下图所示:

通过Socks代理使用Git

图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一下仓库,就能成功更新代码啦!

备注

  1. 老版本的nc代理参数可能是-x,新版本是--proxy系列,具体可以参考man nc;

  2. 上述方案适用于Git走SSH协议;

  3. Git Server端需要提前将客户机的公钥配置好,否则会鉴权失败。如果是Gitlab,登陆到后台即可配置。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
3年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Shell curl 和 wget 使用代理IP
LinuxShell提供两个非常使用的命令来爬取网页,它们分别是curl和wgetcurl和wget使用代理curl支持http、https、socks4、socks5wget支持http、https代理示例:!/bin/bashcurl支持http、https、socks4、soc
Stella981 Stella981
3年前
Proxifier Socks5 代理(内网访问、远程办公)
适用场景远程(在家)办公,访问公司内网资源下载代理工具Proxifier:https://pan.baidu.com/s/13NoMcp1F03GXWt90PzsgPA提取码:8d3d使用Proxifier进行Socks5代理准备工作
Stella981 Stella981
3年前
Git 针对 GitLab Github 配置 HTTP HTTPS SSH 代理
配置git代理配置git的httphttps代理Linux和Windows都适用gitlab服务器在国外下载速度速度收到很大影响。下面对gitlab配置httphttps代理。同理也可以对github配置httphttps代理。
Wesley13 Wesley13
3年前
GIT命令大全
Git命令大全Git最小配置某账号下所有的Git仓库都有效gitconfigglobaluser.name'您的名称'gitconfigglobaluser.email'您的Email'只对当前Git仓库有效gitconf
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.