Github配置:SSH和网络代理
Github的协议
先看Github下载代码仓的界面:
下载Github代码,可以使用SSH和HTTPS。
Https协议
一般情况下,HTTPS协议下载可以直接在Git Bash终端使用。但是,每次提交代码都需要输入账号和密码,比较麻烦。
SSH协议
总体而言,SSH协议下载的仓必须是属与下载者,而且还必须添加SSH-Key到Github。但是,每次提交代码都不需要输入账号和密码。分为如下两步(请自行百度,日后更新详细步骤):
- 本地机器生成SSH-Key,注意该Key与机器绑定,如果更换机器,需要重新生成;
- 添加本地生成的SSH-Key到Githuib个人设置界面
Github网络代理:解决clone和push速度慢的问题
本篇文章的目的在于配置Github的网络配置,由于网络代理和协议HHTPS和SSH相关。所以,开篇先介绍Https和SSH协议在Github的区别和场景。
本文目的在于记录和整理Github的网络配置,如果有任何问题,评论留言,作者及时回答。
本文Github配置的的前提:你懂的,你懂的,三次修改了;
Https设置
如果下载者使用图一下载代码仓,而且速度稳定的维持在20kb/s以下,设置如下命令:
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
注意:
- 前后http和https需要对应
- 1080是本地代理端口
- 只针对HTTPS下载生效,SSH下载无效
下载完成以后,可以使用如下命令取消代理:
git config --global --unset http.proxy
git config --global --unset https.prox
题外话:
其实,也可以编辑文件:C:\Users[**替换称自己的名字 **].gitconfig
至于文件内容的话,读者可以运行命令后实时查看,会有更加深刻的体会。
配置SSH的授权文件和代理连接程序
相当于HTTPS的网络设置,SSH的设置略显复杂,原理不说,具体步骤如下:
查看文件夹C:\Users[**替换称自己的名字 **].ssh 下是否存在config文件,如果没有,则创建,内容如下:
Host github.com
User git
Port 22
Hostname github.com
IdentityFile "C:\Users\[替换称自己的名字]\.ssh\id_rsa"
TCPKeepAlive yes
ProxyCommand "C:\Users\luopan\AppData\Local\Programs\Git\mingw64\bin\connect.exe" -S 127.0.0.1:1080 -a none %h %p
Host ssh.github.com
User git
Port 443
Hostname ssh.github.com
IdentityFile "C:\Users\[替换称自己的名字]\.ssh\id_rsa"
TCPKeepAlive yes
ProxyCommand "C:\Users\luopan\AppData\Local\Programs\Git\mingw64\bin\connect.exe" -S 127.0.0.1:1080 -a none %h %p
注意
- IdentityFile 对应的是SSH的授权文件,必须设置,而且设置必须对,否则下载失败;
- ProxyCommand 对应的是SSH的代理连接程序,使用绝对路径[一般位于Git安装目录之下,使用EveryThing搜索一下]
- -S 表示默认使用socks5
- %h 和%p分别表示Host和Port,占位符
最后使用如下地址测试:
git clone git@github.com:nodejs/node.git
测试结果如下图: