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.其余开发 ...
随机推荐
- inline与lnk2001、lnk2019,鸡肋?
inline函数居然出现了lnk2001.lnk2019,先贴代码. a.h #pragma once class A { public: inline void foo(); void us ...
- SilkTest Q&A 4
Q31.如何在inc文件里面写函数? A31.在你在inc文件(例如demo.inc)里写好函数以后,你需要使用Use path/Use file来指定指定它们. 在SilkTest中->Opt ...
- C语言之基本算法35—数组上三角之积 主对角之积 副对角之积
//数组算法 /* ============================================================= 题目:求四阶矩阵上三角之积.主对角之积,副对角之积: 如 ...
- [Windows Phone学习笔记]页面之间传递对象
在Windows Phone中,页面之间传递参数就类似Web开发中一样,通过QueryString的形式进行传递,但是如果需要传递对象,则无法通过QueryString形式了,其实也可以,把对象序列化 ...
- Android开发之Sqlite的使用
在Android中存储数据可以用文件.数据库.网络,其中文件和数据库是最常用的,数据库我们常用的就是Sqlite,它是一种经量级的.嵌入式的关系型数据库:在android中当需要操作SQLite数据库 ...
- 开源工具DbUtils的使用(数据库的增删改查)
开源工具DbUtils的使用(数据库的增删改查) 一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果 ...
- hdu1428之dfs+spfa
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 5009 Paint Pearls (动态规划)
Paint Pearls Problem Description Lee has a string of n pearls. In the beginning, all the pearls have ...
- 苹果iOS手机系统诊断功能是后门吗?
7月20日,美国知名苹果iOS手机系统侦破专家扎德尔斯基在2014年世界黑客大会(HOPE/X)用幻灯片讲演揭露了苹果手机存在系统级"后门". 为此,7月23日.苹果公司马上做出回 ...
- 3p
哈,不要自卑.爱情和婚姻可遇不可求,缘到自然成.首要的是人好,容貌別太差,毕竟天天在一起看着要舒心才好,另外应该有上进心,避免势利小人.这些,都要看机缘.所谓right person at right ...