Git代理服务器设置和访问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://使用的9418port以及基于SSH的git@github.com格式的地址使用的22port在你的网络环境里(特别是代理服务端)被防火墙屏蔽了。这是极为常见的,大多数的代理环境基于安全考虑,会屏蔽除80(http)和443(https)之外的port。
那这是否意味着我们就不能在这样的网络环境里使用git://或git@github.com格式的地址呢?请继续看下文。
4. 幸好有你:SSH over the HTTPS port
尽管能够在Github上使用HTTPS协议push代码(使用的是username在Github上的username和password)。但通常来说,使用SSH检出和提交代码是更为安全,更适合团队开发,那么怎么解决前文提到的问题呢?对此,Github通过将ssh的连接port指定为https使用的443,使用了另外一个主机名:ssh.github.com来解决这一问题,这样我们能够通过大多数代理server同意的443port,使用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文件配置是否正确了。成功登入后提示:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmx1aXNoZ2xj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
方法二:假设在配置这些參数之前我们不能确定它们的正确性。我们能够先通过命令行的方式来指定这些參数,待验证通过后把这些參数写入到config文件中。
此时的命令要这样写:
ssh -o ProxyCommand="/path/to/connect -H 代理主机:port %h %p" -i "/path/to/your/github_private_key" -T -p 443 git@ssh.github.com
成功登入后提示:
方法三:我们还能够通过putty以另外一咱全然独立和便捷的方式来验证,即在putty中建立一个session,目标主机是ssh.github.com。port443,登入username443,指定好你的Github私钥(注意:putty使用的私钥与openssh的私钥格式是不一样的,假设你没有保存putty格式的私钥就须要通过putty的keygen工具生成或转换)。设定好代理主机和port然后连接,假设出现例如以下图的提示,也表示配置正确!
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmx1aXNoZ2xj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
版权声明:本文博主原创文章,博客,未经同意不得转载。
Git代理服务器设置和访问Github的更多相关文章
- 配置 git 以ssh公钥访问github
#生成ssh config touch .ssh/config chmod 600 config 填写: Host github.com User betachen Hostname ssh.gith ...
- github for window 中 git shell 设置代理方法和解决ssl证书错误的问题
体验了一下传说中的 github for windows(操作git有很多的方法,我还没有学会,所以找了个简单的方法),听说用起来还不错,毕竟也开始接触了github.下载地址是 http://win ...
- myeclipse eclipse 使用git插件访问github 的解决方案
具体的步骤很多帖子都有写,这里不再赘述,需要说明的一点,git插件的版本很重要,在官网上下载的最新版本在MyEclipse8.5,MyEclipse9.1,MyEclipse10上面都没有成功. 这里 ...
- Git链接到自己的Github(1)简单的开始
好长时间没上来弄东西了,今天回来先开始弄下Git,之后再继续写uboot与kernel的编译,在版本控制下更加宏观地观察每次的变化. 1.在ubuntu中安装git $ sudo apt-get in ...
- 使用TortoiseGit来访问GitHub
因为以前一直在用TSVN, 对其界面操作比较熟悉. 因此,决定不用Git Gui而是用TortoiseGit来访问GitHub. 安装TortoiseGit成功后, 1.运行PuTTY Key Gen ...
- git推送项目到github并使用gitee做镜像仓库
2022最新版github入门教程,教你如何一步步创建自己的github账号并初始化仓库,然后使用git工具配置个人工作环境.配合gitee仓库,作为github的镜像仓库使用.这篇文章很基础,对萌新 ...
- (转)如何将本地git仓库上传到GitHub中托管+实践心得
Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...
- Git 的深入理解与GitHub托管服务(转)
源代码管理系统(SCM)与版本控制 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会 ...
- 【Git】简单地使用github当做远程共享仓库
简单地使用github当做远程共享仓库 1.进入各自的github,选取一个人的github作为总的远程共享仓库,其余成员每次修改完项目后pull request请求合并自己的修改内容. 2.其余开发 ...
随机推荐
- C文件操作的语言fgets()
谈fgets(..)功能. 原型 char * fgets(char * s, int n,FILE *stream); 參数: s: 字符型指针.指向存 ...
- svn跨机备份
#!/bin/sh svn_bak_dir='/svndata/cloudil' svn_server='svn://172.16.40.200:9999' user=adminread pass=a ...
- How to get the source code of the chromium of the specified revision
I'd like to get the source code of the chromium 34.0.1847.9. gclient config http://src.chromium.org/ ...
- Codechef Not a Triangle题解
找出一个数组中的三个数,三个数不能组成三角形. 三个数不能组成三角形的条件是:a + b < c 两边和小于第三边. 这个问题属于三个数的组合问题了.暴力法可解,可是时间效率就是O(n*n*n) ...
- 面向接口可扩展框架之“Mvc扩展框架及DI”
面向接口可扩展框架之“Mvc扩展框架及DI” 标题“Mvc扩展框架及DI”有点绕口,我也想不出好的命名,因为这个内容很杂,涉及多个模块,但在日常开发又密不可分 首先说Mvc扩展框架,该Mvc扩展就是把 ...
- poj 3278 Catch That Cow (bfs搜索)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 46715 Accepted: 14673 ...
- ubuntu12.04安装深度音乐播放器和深度影音
昨天折腾了一天,想要安装深度播放器和深度影音都未成功,老是出现依赖关系不满足这个错误.网上解决办法有非常多,可是都没能有效的解决这个问题.今天突然想起来之前换过软件源,是不是这个原因而导致了依赖关系不 ...
- Maven POM入门
Super POM(project object model) Maven内置了一个默认的POM(不在项目中,因此不可见),每一个project都会继承自这个默认的POM,因此叫Super POM.除 ...
- zoj3471(状压dp)
题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257 题意:不超过10种气体,两两之间相互碰撞可以产生一定的能量,如 ...
- 抽出SqlHelper
什么叫SqlHelper,通过简单的翻译,能够获得这是对Sql的帮助,那么它究竟对我们的Sql做出了什么样的帮助呢? 在一款软件的设计编程中,总是会对数据库有连接的.假设你用的是SqlServer的数 ...