李迎辉

李迎辉的博客

他的个人主页  他的博客

如何通过http代理来使用github

李迎辉  2009年09月01日 星期二 13:54 | 3845次浏览 | 3条评论

经过前阵子的试验,我基本掌握了git的使用,特别是在windows下使用TortoiseSVN。但是由于单位有HTTP代理,所以并没有怎么去使用。后来经过刘磊的提醒,给了一个关于ssh-https-tunnel的使用链接,可以通过它来访问代理,然后使用git。刘磊也将其加入他的文档中《Git使用指南》,不过并没有描述详细的配置过程,下面由我向大家说一下。

1. ssh的认证不要使用Tortoise自带的,一定要使用git的openSSH的方式,这一点很重要。如果你已经指定了Tortoise的方式,那么通过修改环境变量GIT_SSH就可以了,当然重装也是一种办法。

2. 配置时使用git bash来操作。

3. 通过执行

ssh-keygen -t rsa

创建公私钥,文件就保存在~/.ssh/id_rsa下就行了。执行时一路回车就好了。

4. 创建ssh的config文件,如:

vi ~/.ssh/config

内容为:

Host github.com 
ProxyCommand ~/.ssh/ssh-https-tunnel %h %p ~/.ssh/proxyauth
Port 443
Hostname ssh.github.com

这里你可以看到第二行最后有一个~/.ssh/proxyauth。这是因为我单位的代理有口令,所以要再生成一个proxyauth文件,格式就是:username:password。如果你没有,去掉它就行了。

同时Hostname的目的是为了创建一个别名,其实我们使用的是ssh.github.com,但是因为平时都使用git@github.com,所以为了不进行修改,创建一个别名。

5. 下载ssh-https-tunnel,可以从 http://zwitterion.org/software/ssh-https-tunnel/ssh-https-tunnel ,保存到你的git的~/.ssh目录下

同时要打开这个文件进行修改,将:

 

my $proxy      = "";

my $proxy_port = ;

改成你的实际的代理服务器地址。

6. 使用ssh git@github.com 来测试

Hi limodou! You've successfully authenticated, but GitHub does not provide shell
 access.
Connection to ssh.github.com closed.

这里的难点一个是代理认证的配置,这是我在网上搜到的。还有就是GIT_SSH的设置。如果安装了TortoiseSVN,选择了ssh客户端,那么有可能ssh的代理设置通过,但是git使用时会出错,因为它会去看环境变量。

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号