啥是SSH
- SSH是运行在应用层上的一种协议,基本上是基于传输层的TCP协议存在的
- SSH全称是Secure Shell(安全外壳协议)
故事开始咯
故事1
- 一天,小明要把作业交给老师,但小明怕在交作业的过程中作业被人偷看了去
- 所以小明和老师商量:我给我的作业放到箱子里,并且配两把钥匙,您一把,我一把
- 我用这把钥匙给箱子上锁,您收到后也用您那把钥匙解锁,这样我的作业就安全啦!!
- 此时,你已经理解了对称加密的概念(DES)
我们来类比的说明一下这个故事中的概念:
- 作业在通信中就叫做明文,是要发送的数据
- 那把钥匙就叫做密钥
- 而那个箱子呢就叫做密文
故事2
- 有一天,不法分子偷取了小明的钥匙,当然也可以偷老师的钥匙,打开了箱子,拿走了小明的作业
- 结果小明当天就没有作业可以交了
- 老师想了个办法,老师说:我现在打造两把钥匙,一把只能用来上锁,一把只能用来解锁,这两把锁完全不一样
- 我把上锁的那把钥匙交给你,你用这把钥匙上锁
- 而我会把解锁的钥匙小心看管,只有我才能打开你的作业箱
- 此时,你就理解了非对称加密的概念(RSA)
Git远程仓库SSH
- 我们类比一下拉取Git仓库的过程
- 你的本机现在是扮演老师的角色,你想要从Git远程仓库拿到作业(也就是数据)
- 你就必须要打造两把钥匙,一把用来上锁(公钥),一把用来解锁(私钥)
- 这两把钥匙都留在你的本机上
- 然后你要把上锁的那把钥匙(公钥)交给Git仓库服务器,以便于他对数据进行加密
- 这样做有个好处,就是安全且省去了每次输密码的麻烦
- 能实现这样的原因是因为他认为只有你能打得开它上的锁,所以Git服务器认为是安全的
#这会使你的家目录下的.ssh文件夹中出现id_rsa(私钥)和id_rsa.pub(公钥)
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
#你需要打开id_rsa.pub文件,将其中的内容复制到你的Git仓库密钥设置中,就是这么简单
可以参考Gitee的说明文档
https://gitee.com/help/articles/4181#article-header0