ssh proxy(github配置SSH proxy)
一、有何方法可以给github远程仓库的push提速
把本地仓库推送到新仓库
这里我们在Android Studio创建一个新的项目,然后来到项目所在的位置,右键git bash,
键入:git init将这个项目变成带有git仓库的项目,这里我们拷贝下Github那里我们这个
仓库的地址:
,然后键入下述指令:
git remote add origin github.com/coder-pig/SimpleTea.git
指定完远程主机后,我们可以直接键入git remote来查看,或者加上-v:
接着我们键入下述命令把我们的仓库push到github上,这里的-u参数作为第一次提交使用,
作用是把本地master分支和远程master分支关联起来(设置默认远程主机),后续提交不需要这
个参数!
git push-u origin master
这时候打开我们的GitHub就可以看到我们的项目已经成功push上来了!
这里我们是通过git remote来设置远程仓库地址的,假如你想修改远程仓库地址,
比如你把仓库托管换成了Git@OSC,你需要修改远程地址,可以键入:
git remote set-url origin xxxx
来修改远程地址,你也可以先删除origin然后再添加:
git remote rm origin
还可以直接修改.git文件夹里的config文件,直接替换圈住位置:
另外,这个origin不是什么固定的东西,这个只是我们后面那个仓库地址的一个别名!!!
你可以写成其他的东西,比如我的项目既托管在Github又托管在Git@OSC,我可这样设置:
git remote add github
git remote add osc git@git.oschina.net:coder-pig/SimpleTea.git
这一点要弄清楚!!!
3.为项目添加SSH Key免去提交输入账号密码的麻烦
不知道细心的你有没有发现,仓库地址除了Https外,还有一个SSH,这里我们简单介绍下
两者的区别,第一点:使用Https url可以任意克隆Github上的项目;而是用SSH url
克隆的话,你必须是项目的拥有者或管理员,而且还要添加SSH Key,否则会无法克隆。
还有一点是,Https每次push都需要输入用户名和密码,而使用SSH则不需要输入用户名
如果配置SSH Key时设置了密码,则需要输入密码,否则直接git push就可以了!
另外,SSH,Secure shell(安全外壳协议),专为远程登陆会话与其他网络服务提供安全性
的协议,而SSH传输的数据是可以经过压缩的,可以加快传输的速度,出于安全性与速度,
我们优先考虑使用SSH协议,而SSH的安全验证规则又分为基于密码和基于密钥两种!
我们这里用的是基于第二种的,即在本地创建一对密钥,公钥(id_rsa.pub)和私钥(id_rsa),
然后把公钥的内容贴到Github账号的ssh keys中,这样就建立了本地和远程的认证关系,
当我们再push到远程仓库,会将你本地的公共密钥与服务器的进行匹配,如果一致验证通过
直接推送更新!
下面我们来建立ssh key,首先来到电脑的根目录下,这里假定我们没创建过SSH key:
执行完ssh-keygen那个指令后,后面依次要你输入文件名,直接回车会生成两个默认的
秘钥文件,接着提示输入密码,直接回车,如果这里你输入密码了的话,那么push的时
候你还是需要输入密码,接着又输多一次密码,同样回车,然后出现最下面的这串东西
就说明ssh key已经创建成功了!
我们接着可以用编辑器打开id_rsa.pub文件或者键入:
clip<id_rsa.pub
复制文件内容,然后打开Github,点击你的头像,选择:Settings,然后点击左侧SSH Keys,
然后New SSH Key
然后Github会给你发来一个提示创建了一个新ssh key的邮件,无视就好,接下来我们可以
键入:ssh-T 779878443@qq.com,后面的是你的注册邮箱,然后如果你上面设置过
密码则需要输入密码,否则直接输入yes然后一直按回车就好!,最后出现Hi xxx那句话
就说明ssh key配置成功了!
二、如何配置github中的SSH key值
方法/步骤
检查SSH是否失效
在git命令行中进行git操作的时候,发现原来设置过的SSH key已经失效;登陆到github网站上查看,图标呈现灰色;好了,发现问题所在;
设置用户名和邮箱
在git命令行中对git进行全局设置, git config--global user.name"用户名", git config--global user.email"邮箱地址";
生成SSH key
在git命令行中,输入命令: cd~/.ssh,来检测是否生成过key,没有生成过key,会有相关信息提示;然后输入命令: ssh-keygen-t rsa-C“邮箱地址”,按下回车键;然后根据返回的信息,找到.ssh目录下的两个文件;
在github上添加SSH key
在github上点击“setting”,找到添加SSH key的菜单,然后新增SSH key;把文件id_rsa.pub里面的内容全部复制到 key编辑框中,保存完毕;
检查SSH key是否有效
在git命令行输入:ssh-T git@github.com;这里会要求你输入SSH key密码,如果刚才生成SSH key时未输入密码,密码就为空;然后看到信息:
ERROR: Hi用户名! You’ve successfully authenticated;说明配置成功;
再次查看github密钥
登陆到github上查看刚刚输入的SSH key,现在图标的颜色变为绿色,说明密钥配置有效;现在可以在git命令行上进行git操作了;
三、Github笔记 之设置SSH Key密钥
Github链接已有仓库时的认证,是通过使用SSH的公开密钥认证的。
首先,创建SSH Key,语法:
$ ssh-keygen-t rsa-C"content neirong"
-t:密钥的类型
-C:用于识别密钥的注释
-C一般大家都写的是Email邮箱
以下小者测试的例子:
$ ssh-keygen-t rsa-C"add wm public ssh"
Generating public/private rsa key pair.
Enter file in which to save the key(/c/Users/xx/.ssh/id_rsa):
Created directory'/c/Users/\351\207\212\345\246\202\347\247\230/.ssh'.
下面是要输入的密码:
Enter passphrase(empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/c/Users/xx/.ssh/id_rsa
Your public key has been saved in/c/Users/xx/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:NGpvF0aaCWM5LsyZz6uTsqPI1UxEiLI9xCOEXdcIDX4 add wm public ssh
The key's randomart image is:
+---[RSA 3072]----+
|o+..==.o |
|+.=o..o.. |
|.=...E o. |
|. oo.*** |
| .*.+ S o |
| +=... |
| .+o o. |
|o+ o o. |
|oo.+.o. |
+----[SHA256]-----+
小者设置的密码是空。
id_rsa文件是私有密钥,id_rsa.pub是公开密钥。
查看公开密钥的方法:
$ cat~/.ssh/id_rsa.pub
把本地设置的公开密钥添加至GitHub中。
现在验证一下用手中的私有密钥与GitHub进行认证和通信了。
语法:
$ ssh-T git@github.com
The authenticity of host'github.com(xx.xx.xx.xx)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
This key is not known by any other names
Are you sure you want to continue connecting(yes/no/[fingerprint])? yes(这里输入yes)
出现以下说明成功通信:
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
若有不当之处,敬请原谅。