GitHub提供了两种方式进行代码clone,HTTPS方式和SSH方式
大多数人都用的HTTPS方式,每次提交和clone都需要输入用户名密码,其实使用SSH更加方便,只需要配置一次SSH key即可,之后再与服务器交互便不需用输入用户名密码
SSH简介
SSH为Secure Shell的缩写,是一个建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。
SSH和HTTPS相比最大的优点在于它的安全性,但在使用SSH需要先配置一下SSH key
SSH和HTTPS的区别:
HTTPS可以随意克隆GitHub上的项目,没有权限限制,但是每次克隆都需要验证用户名和密码。使用SSH不需要验证用户名和密码,但是只能对有权限的项目进克隆,这里的权限指的是是否可以配置SSH key,GitHub中可以对自己是管理员的项目或个人项目添加SSH key,否则无法添加SSH key,也就无法使用SSH。
SSH工作原理:
使用本地的版本控制软件Git生成一个SSH key,然后将这个SSH key配置到GitHub账户中,配置成功后这台电脑就和对应的GitHub账户建立了关联,之后每次使用SSH都不需要再进行验证
为GitHub配置SSH key
此过程需要两步:1,在本地生成SSH key 2,将SSH key配置到GitHub中
1.在本地生成SSH key
1)查看本地SSH key
运行 git Bash 客户端,输入Git命令:
cd ~/.ssh
ls
如果存在文件名为id_rsa和id_rsa.pub的两文件,说明你已经生成过SSH key了,直接使用就可以了,如果没有,那么要先生成本地SSH key
2)生成本地SSH key
输入Git命令
ssh-keygen -t rsa -C “你注册GitHub时用的邮箱”
执行命令后出现如下提示,询问你SSH key密匙文件的保存位置,不用修改,直接回车
Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
接着出现如下提示,让你设置提交代码时使用的密码(不是GitHub账户的密码),前面已经讲过,SSH提交和克隆完全是安全的,所以这里不用设置密码,直接两次回车,则以后提交时都不用输入密码
Enter passphrase (empty for no passphrase):
# Enter same passphrase again:
接着生成一个方形的图案,这使SSH key已经生成成功
2.将SSH key配置到GitHub中
1)复制SSH key的内容
可以找到id_rsa和id_rsa.pub两个文件,如果生成SSH key时你使用的默认路径,那么你就可以在路径C:\Users\你的用户名\.ssh
下找到设两个文件,用记事本打开,复制其中的内容
也可以使用更简单的方式,即Git命令
clip < ~/.ssh/id_rsa.pub
2)将SSH key的内容添加到GitHub账户中
第4步,在key的文本框中进行粘贴操作
3)测试SSH key能否使用
输入Git命令
$ ssh -T git@github.com
出现如下显示:
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
输入yes确认后显示下面一段话说明SSH key可以使用了
Hi username! You’ve successfully authenticated, but GitHub does not
# provide shell access.
如果你运气不好忙了半天SSH key还不能用,那也没关系,继续使用HTTPS吧,两者的功能完全一样的