文档章节

Git代理设置与访问Github

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 1393
阅读 102
收藏 0
点赞 0
评论 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


© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 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 ⋅ 0

cloud9安装问题记录解决

cloud9是一款基于node.js的在线编辑器,支持php,ruby,python,js,等语言的编辑,可以和scm系统整合等。我的安装步骤:安装node version 管理软件 n , git clone https://github.com/vis...

qingfeng哥 ⋅ 2013/11/25 ⋅ 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 ⋅ 15

github for window 中 git shell 设置代理方法和解决ssl证书错误的问题

因为国内特殊的网络环境,所以用github for windows,在使用git shell的clone命令是会出现这样的情况 git clone https://code.google.com/p/android-os-monitor.osmonitor/ Cloning into and...

subying ⋅ 2014/01/17 ⋅ 2

github for window的代理设置方法

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

subying ⋅ 2014/01/20 ⋅ 2

git 设置代理,提高下载速度

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

linux运维菜 ⋅ 06/16 ⋅ 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

在windows上通过代理访问github.com

公司上网用代理,但是git 与ssh似乎没开代理。导致无没访问github.com 来更新我 的配置文件。下面是解法。 github.com 的git 提供了三种方式: http:// git:// 与ssh 方式 git:// 需要用到s...

mj4738 ⋅ 2012/05/16 ⋅ 1

为终端设置Shadowsocks代理

做开发的同学,应该都会经常接触终端,有些时候我们在终端会做一些网络操作,比如下载gradle包等,由于一些你懂我也懂的原因,某些网络操作不是那么理想,这时候我们就需要设置代理来自由地访...

爪哇小贩 ⋅ 2016/05/18 ⋅ 0

Git代理问题error: Couldn't resolve proxy 'to' while...

最近想学习一下Go语言。在虚拟机下的Ubuntu1210下使用go get下载github上的package的时候会调用git clone去下载github上的代码,因为我是代理的环境(外网NTLM代理,本机使用ntlmaps架了ntlm转...

bfleeee ⋅ 2013/03/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 16分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 36分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 43分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 43分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 51分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部