0%

与Github repository连接的3种方式

本文介绍与Github repository连接的3种方式。
首先在Github建立一个用于测试的“repository”,取名为“testtest”。

一、使用HTTPS

首先获取“testtest repository”的使用HTTPS的clone地址,如图1所示。

图1

接下来验证是否能够成功建立连接:

  1. 在本地某个目录下执行git clone https://github.com/dslztx/testtest.git命令,发现“testtest repository”的内容被成功复制到本地,说明成功建立连接
  2. 在本地进行一些修改,然后执行git commit -m 'comment';git push origin master命令,发现本地的修改被更新到“testtest repository”,说明成功建立连接

二、使用SSH,SSH Server监听端口22

在尝试建立SSH连接之前,应该首先确定是否能够与“22”端口正常通信,因此先执行telnet github.com 22命令,得到如图2所示结果。

图2

由以上结果可知,不能与“22”端口正常通信,也就不能成功建立SSH连接。
经过简单分析可知,出现以上结果的原因在于:有太多人使用SSH方式“穿墙”,而SSH Server的默认监听端口为“22”,然后ZF应该直接就干扰掉“22”端口了。

三、使用SSH,SSH Server监听端口443

首先尝试确定是否能够与“443”端口正常通信,先执行telnet ssh.github.com 443命令,得到如图3所示结果。

图3

由以上结果可知,能够与“443”端口正常通信。(“443”端口作为HTTPS协议的默认监听端口,跟“80”端口作为HTTP协议的默认监听端口一样,因而ZF应该没有干扰“443”端口,否则波及面太广了)

接着分两步与“ssh.github.com”建立SSH连接:

  1. 生成一个公私钥对,将公钥的内容配置到Github中,假定私钥文件的路径为“~/.ssh/id_rsarsa”
  2. 执行ssh -l git -i ~/.ssh/id_rsarsa -p 443 ssh.github.com命令,与“ssh.github.com”建立SSH连接

在“~/.ssh/config”文件中配置如下片段,此后只需执行ssh github.com命令即可与“ssh.github.com”建立连接。

Host github.com
    HostName ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_rsarsa

接着获取“testtest repository”的使用SSH的clone地址(当使用该地址与Github repository进行通信时,会基于后台建立的SSH连接传输数据),如图4所示。

图4

接下来验证是否能够成功建立连接:

  1. 在本地某个目录下执行git clone git@github.com:dslztx/testtest.git命令,发现“testtest repository”的内容被成功复制到本地,说明成功建立连接
  2. 在本地进行一些修改,然后执行git commit -m 'comment';git push origin master命令,发现本地的修改被更新到“testtest repository”,说明成功建立连接

参考文献: [1]https://help.github.com/categories/ssh/ [2]https://help.github.com/articles/testing-your-ssh-connection/ [3]https://help.github.com/articles/using-ssh-over-the-https-port/ [4]http://www.howtogeek.com/233383/why-was-80-chosen-as-the-default-http-port-and-443-as-the-default-https-port/
您的支持将鼓励我继续分享!