文档章节

Git代理设置与访问Github

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 1393
阅读 104
收藏 0
由于目前工作的网络环境有着很严格的限制,可以说最近在通过代理访问Github上颇费了一些周折,也积累了一些相关的经验,觉得有必要备忘一下。本着“不重新发明轮子”的宗旨,本文不会对Github代理设置的每一个细节进行赘述,文中会给出现成的参考文章,这里要做的是针对一些重要的问题进行解释和补充,相信一定能给遇到同样问题朋友以帮助。本文原文出处:http://blog.csdn.net/bluishglc/article/details/37807501 严禁任何形式的转载,否则将委托CSDN官方维护权益!

1. 别折腾了,请先屏蔽NTLM验证!

首先,如果你的网络代理使用的是NTLM验证,不要作任何无谓的“挣扎”,请先安装Cntlm,建立一个无须身份验证的普通HTTP代理,因为目前版本的GIT不支持NTLM验证的代理,不先借助Cntlm屏蔽掉NTLM验证,后续的任何工作都是无意义的。关于Cntlm的安装和配置请参考:http://blog.csdn.net/bluishglc/article/details/37600773

2. Git代理配置走起

关于Git代理的配置请参考:http://jixiuf.github.io/git/git-proxy-on-windows.html 这里对文中提到的ssh的config文件简单地解释一下,这个文件主要是保存一些经常访问的目标主机的连接配置,很像Putty里保存的session。config文件的结构是是以Host开头的配置项是作为一组,Host项之后到下一个Host之前的所以配置项都是针对这个Host配置的!另外,文中config文件提到的connect是一种代理转发工具,对一个简单的命令行工具不太可能设计如何配置代理,或者像SSH这样为了保证程序本身功能的单一,把代理配置委托第三方工具实现,这就是connect的作用。

3. https://?可以!git://?没门!

安装配置好Cntlm,参看前面的文章进行配置,我们就可以在Github上检入检出https://描述的repository了,如果你尝试使用git://或git@github.com格式的地址访问,则在某些代理环境下可能会报出如下错误:

HTTP/1.1 502 Proxy Error ( The specified Secure Sockets Layer (SSL) port is not allowed. Forefront TMG is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.  )

引起这一问题的原因是git://使用的9418端口以及基于SSH的git@github.com格式的地址使用的22端口在你的网络环境里(特别是代理服务端)被防火墙屏蔽了。这是极为常见的,大多数的代理环境基于安全考虑,会屏蔽除80(http)和443(https)之外的端口。那这是否意味着我们就不能在这种网络环境里使用git://或git@github.com格式的地址呢?请继续看下文。


4. 幸好有你:SSH over the HTTPS port


虽然可以在Github上使用HTTPS协议push代码(使用的是用户名在Github上的用户名和密码),但通常来说,使用SSH检出和提交代码是更为安全,更适合团队开发,那么怎么解决前文提到的问题呢?对此,Github通过将ssh的连接端口指定为https使用的443,使用了另外一个主机名:ssh.github.com来解决这一问题,这样我们可以通过大多数代理服务器允许的443端口,使用SSH访问Github了,这一点在前面参考文章中提到的config文件里也配置过了,就是Host为ssh.github.com的部分,关于这部分的说明和配置,Github的官方帮助文档也有说明:https://help.github.com/articles/using-ssh-over-the-https-port。这里我只想说一下如何验证配置已经成功,显然,只要我们能通过SSH登入目标主机就表明配置正确了:

方法一:像我们前面提到的参考文章,它把ssh.github.com的配置参数写进了ssh的config文件,这样可以在命令行工具中使用

ssh -T -p 443 git@ssh.github.com

就能验证config文件配置是否正确了,成功登入后提示:

方法二:如果在配置这些参数之前我们不能确定它们的正确性,我们可以先通过命令行的方式来指定这些参数,待验证通过后把这些参数写入到config文件中。此时的命令要这样写:

ssh -o ProxyCommand="/path/to/connect -H 代理主机:端口 %h %p" -i "/path/to/your/github_private_key" -T -p 443 git@ssh.github.com

成功登入后提示:


方法三:我们还可以通过putty以另外一咱完全独立和便捷的方式来验证,即在putty中建立一个session,目标主机是ssh.github.com,端口443,登入用户名443,指定好你的Github私钥(注意:putty使用的私钥与openssh的私钥格式是不一样的,如果你没有保存putty格式的私钥就需要通过putty的keygen工具生成或转换),设定好代理主机和端口然后连接,如果出现如下图的提示,也表示配置正确!


最后特别提醒的是,在上述配置验证成功后,我们从github上检出项目时务必记得修改主机名,把 git@github.com改为 git@ssh.github.com
以检出opentsdb项目为例,命令要从

git clone git@github.com:OpenTSDB/opentsdb.git

变为:

git clone git@ssh.github.com:OpenTSDB/opentsdb.git


本文转载自:http://blog.csdn.net/bluishglc/article/details/37807501

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
windows10+vs2015+python35安装 pyuv

1、 git clone https://github.com/saghul/pyuv 2、安装过程中会下载libuv的源码和gyp的源码,需要访问google的服务器。设置git代理。 香港代理 http://49.1.244.139:3128 https://183.111.1...

liwenhui
2016/01/14
762
0
《小代码-1》电子期刊第一期即将发行

https://github.com/2293/tinycode/blob/gh-pages/TinyCode1.md chat https://gitter.im/2293/tinycode 《小代码-1》即将完成,有重要更新,如: SSH设置本地Socks5代理访问国外网站 设置打开...

a_boy
2016/02/26
3.6K
15
github for window的代理设置方法

前面说到,git shell通过代理的方式是实现git功能。我始终觉得GitHub这个界面软件是可以使用系统的代理的。毕竟界面软件容易操作,呵呵。  经搜索发现结果大都说到一个操作,那就是修改Git...

subying
2014/01/20
0
2
git 设置代理,提高下载速度

  前言   在获取github或者golang.org上面的代码的时候,发现有时候很慢,这时候就需要使用代理。go get实际也是使用git去获取的。因此只要设置git代理即可。      设置   可以是直...

linux运维菜
06/16
0
0
Failed connect to github.com:443; No error

任务目标:将线上已有的https://github.com/eyjian/mooon.git克隆到本地的E:GitHubmooon目录 问题描述:使用Git的Windows客户端UI工具GitHub执行克隆操作时报错,查看它的日志,难发现问题,...

一见蓝天
2015/03/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
30分钟前
3
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
34分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
34分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
45分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部