本文介绍与Github repository连接的3种方式。
首先在Github建立一个用于测试的“repository”,取名为“testtest”。
一、使用HTTPS
首先获取“testtest repository”的使用HTTPS的clone地址,如图1所示。
图1
接下来验证是否能够成功建立连接:
- 在本地某个目录下执行
git clone https://github.com/dslztx/testtest.git
命令,发现“testtest repository”的内容被成功复制到本地,说明成功建立连接 - 在本地进行一些修改,然后执行
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连接:
- 生成一个公私钥对,将公钥的内容配置到Github中,假定私钥文件的路径为“~/.ssh/id_rsarsa”
- 执行
ssh -l git -i ~/.ssh/id_rsarsa -p 443 ssh.github.com
命令,与“ssh.github.com”建立SSH连接
在“~/.ssh/config”文件中配置如下片段,此后只需执行ssh github.com
命令即可与“ssh.github.com”建立连接。
1 | Host github.com |
接着获取“testtest repository”的使用SSH的clone地址(当使用该地址与Github repository进行通信时,会基于后台建立的SSH连接传输数据),如图4所示。
图4
接下来验证是否能够成功建立连接:
- 在本地某个目录下执行
git clone git@github.com:dslztx/testtest.git
命令,发现“testtest repository”的内容被成功复制到本地,说明成功建立连接 - 在本地进行一些修改,然后执行
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/