• Git代理服务器设置和访问Github


    因为现在工作的网络环境有着非常严格的限制,。可以说,在最近的访问通过代理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文件配置是否正确了。成功登入后提示:

    方法二:假设在配置这些參数之前我们不能确定它们的正确性。我们能够先通过命令行的方式来指定这些參数,待验证通过后把这些參数写入到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然后连接,假设出现例如以下图的提示,也表示配置正确!




    最后特别提醒的是,在上述配置验证成功后。我们从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


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    [洛谷 U68862] 奶牛滑迷宫 题解
    STL的妙用(二)——洛谷 P2073 送花
    平衡树 x 01-trie √
    最小生成树(大纲,待补全)
    单源最短路算法
    黑科技:如何提高整数域内高斯消元的精度和速度——高斯消元与辗转相除法的结合
    Scratch的入门笔记
    Ubuntu18.04安装Tensorflow
    Ubuntu18.04安装英伟达显卡驱动
    macOS下appstore提示未能完成该操作的解决办法
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4852241.html
Copyright © 2020-2023  润新知