一、SSH初探
1、SSH是什么?
SSH是一个安全协议,类似有SSL、TSL
Git有四种协议:本地协议、Git协议、HTTP协议、SSH协议
SSH协议的优缺点:
- 优点:SSH访问更加安全,有利于公司的开发维护,并且可以随意的pull和push代码
- 缺点:不支持匿名访问Git仓库
SSH和HTTP的区别:
1、SSH配置成功后可以随意的pull和push代码,不需要输入密码和账号;HTTP需要和远程库进行链接并且输入密码和账号
2、SSH更加安全和高效,在传输前也会压缩数据;HTTP会是明文传输
3、SSH不允许匿名的git账号去访问;HTTP允许匿名访问
2、SSH的工作流程
类似于HTTPS的流程
工作流程
3、SSH应用场景
让团队里的每个人都有对仓库的有写的权限,但不能在服务器位每个人创建账户,SSH就是最好的选择。也就是内部场景
SSH链接到远程仓库的方法:
- 建立一个 ‘git’ 账户,让每个需要写权限的人发送一个 SSH 公钥到开发的库里,这样就可以通过
git
账号去访问主机里
二、生成SSH密钥
1、生成步骤
GitHub原文档生成SSH密钥
- 打开终端
- 生成SSH公钥命令。粘贴下面的文本,将电子邮件地址替换为您的 GitHub 帐户的电子邮件地址
ssh-keygen -t ed25519-sk -C “YOUR_EMAIL”
- 存储公钥位置的命令提示。当提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 接受默认文件位置
默认位置在~/.ssh文件夹下,默认文件名为id_rsa,当第二次输入这个命令去生成SSH公钥的时候,可以修改公钥存储的位置或者是还是选择这个默认位置,选择默认位置的话,就需要去重写id_rsa文件,将我们新的公钥存储进去
- 后续流程输入一路按回车
后续的命令意思是需要你输入使用密钥的口令,类似于密码,如果需要的话就输入,输入之后,后续使用的时候都会让你输入口令,不需要就按回车
2、检查SSH密钥是否生成
检查密钥文件是否存在的命令:
cd ~/.ssh // 进入默认存储文件夹
ls // 查看当前文件夹下的所有文件
其中同名的文件都会成对存在,一个是存储公钥的(id_rsa.pub),一个是存储私钥的
查看密钥:
cat ~/.ssh/id_rsa.pub