你是否因为无法访问公司内网的git服务器而感到发恼,只要你在公司内部有一台pc电脑,看看这篇文章,问题就能够很快解决…
需要先安装ngrok并编译生成代理服务端和代理客户端程序。具体操作可参考:《ngrok实现内网穿透》
¶1. 代理服务端(公网)
启动服务端程序
1 | ~/ngrok/bin/ngrokd -domain="ngrok.qcmoke.site" |
¶2. 代理客户端ngrok配置(内网)
(1)下载编译生成的代理客户端程序后配置ngrok.cfg
1 | vim ngrok.cfg |
(2)启动内网中的代理客户端
1 | ./ngrok.exe -config ngrok.cfg start git |
¶2. 外网用户端操作(外网)
(1)生成密钥
默认已经有~/.ssh/id_rsa
密钥的话,可以生成不同名称的密钥文件。
为什么不用默认的~/.ssh/id_rsa
?因为如果github的git注册账号和公司的git注册账号不一样的话,对应的ssh_key
也不一样。
1 | ssh-keygen -t rsa -C "qcmoke@company.com" -f ~/.ssh/id_rsa_company |
(2)给ssh用户端添加私钥
1 | ssh-add ~/.ssh/id_rsa_company |
(3)在公司内网服务中加入公钥用户端ssh_key
,即~/.ssh/id_rsa_company.pub
里的内容。
(4)配置git服务
1 | 假设公司内网git域名为gitlab.company.com,而端口是2222(默认是22),git账号为qcmoke |
(5)添加私钥到用户端的ssh中
1 | 启用ssh代理 |
(6)测试和克隆仓库
1 | ssh -T git@gitlab.company.com |