git clone遇到的[ssh: connect to host github.com port 22]
起因
在学习递归的时候,对汉诺塔
小研究了一番,参考网上写了个demo
,后面就想同步到github
。
过程
这台电脑是新电脑,所以需要先本地生成ssh key
:ssh-keygen -t rsa -C "youremail@example.com"
可参考-远程仓库。
第一步:ssh-keygen -t rsa -C "youremail@example.com"
;
第二步:在用户目录下,找到.ssh
文件夹下的id_rsa.pub
,打开先复制全部内容;
第三步:登录github
,个人帐号setting
下的SSH and GPG keys
,然后点击右上角的New SSH key
。之后把第二步复制的都拷贝到key
输入框;
第四步:开始克隆:git clone git@github.com:***/***.git
。
正常会成功的,可惜报错了!
![](http://upload-images.jianshu.io/upload_images/194069-3f76ca2361da518c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决
因为公司是代理上网,初步猜测应该是这个问题。
那就google
或baidu
寻找解决方式。
根据报错提示,应该是ssh
连不通。
网上找到ssh -T git@github.com
,可参考-Testing your SSH connection。
测试过结果如下:
![](http://upload-images.jianshu.io/upload_images/194069-282235557d3ed487.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
所以,接着搜索ssh: connect to host github.com port 22: Connection timed out
,发现貌似找到解决方式了。
![](http://upload-images.jianshu.io/upload_images/194069-b46b3cbb6a1a8930.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可参考-ssh: connect to host github.com port 22: Connection timed out
这个说的就是把协议从ssh
方式换成https
。先别管本地git config --local -e
是否可行,要尽快解决问题。
所以,git clone
的时候,换个协议就好了!
git clone https://github.com/***/***.git
![](http://upload-images.jianshu.io/upload_images/194069-2eade5fe5ddb7ce8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
小结
xxx
思考
- 为什么
ssh
协议会存在问题,而https
则不会?什么是ssh
协议?https
协议呢?两者的区别? git bash
下的git clone xxx
是怎么发请求的?类似于curl
?还是??- xxx