场景:由于公司网络使用内网,上网通过代理,当想拉取代码的时候可以通过http/https协议拉取,通过export http.proxy=代理IP:8888,但是这样就要输入用户名密码,通过ssh协议不用,简单方便,如果是普通代理上网设置差不多export http(s)_proxy=代理IP:8888。
- 首先生成一对公私钥:ssh-keygen生成
- 修改 /etc/ssh/ssh_config 文件 (root用户) //普通用户 vim ~/.ssh/config (没有则新建文件)
Host github.com *.github.com # 拉取代码的网址,如果有自己公司搭建的可以按情况修改
ProxyCommand connect-proxy -H web-proxy.oa.com:8080 %h %p #设置代理,域名可以换成IP
IdentityFile ~/.ssh/id_rsa # 拉取代码用户验证的私钥
User git # 用户
- 安装 connect-proxy
Ubuntu:apt-get install connect-proxy -y
Centos:
RPM文件下载
http://rpm.pbone.net/index.php3?stat=3&search=connect-proxy&srodzaj=3
RPM安装:
rpm -ivh 安装包名
安装之后就可以通过代理ssh协议拉取代码
测试样例:git clone ssh://vcs@hostname/source/mytest.git