区别https与sshkey两种方式:HTTPS需要验证 SSH不需要验证
1前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
2https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
命令行的讲解
这个代码块是在讲解生成命令的组成部分
SSH-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "email"
-t 指定密钥类型,默认是 rsa ,可以省略
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
修改名字哈!id_rsa是默认的名字,我们修改成我们自己的就可以!
具体生成步骤
这个代码块是一个具体的生成步骤
命令
ssh-keygen -t rsa -f ~/.ssh/github.gitlab -C "github"
$ cat github.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD4d7OsW3PUdH5PWi+3TmjfsoRjuHIUyjI1Zg9rAeUHvKEOeUs3L7yTjV+s+LA
Pd9CZWPYgnYbc9rFBEhgg6PFeHEhJVs6buvpLYLhVYXVNItHm/02paWTl0EStmKh2N93s1TVoK1WUEPMDuNL6B0arp4
ZzHTM8qykAuZ8p0as4Mv3yeYijzvO2H7dW/bV1NzFv7evPEjjilL5gQ2sHWMK/m+Rmi9SOP4BO4ocMUaYSBnZ6h0xtz
UGPrG5hUYf8+mf6zLLuFsCvXXfmavzkjeemaoSdqIPUeHc+y2W7F0hLPC4LNQx0bUDoTqDBbMjW/boSaAgK1qjFEvZS
vRliL github
配置不同账户
config这一步就是让跳转到不同网站的时候进行使用不同的公钥
在.ssh文件下面新建一个配置文件,里面的内容自己编辑即可。
//创建config文件
touch ~/.ssh/config
# github个人的
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.gitee
# gitlab工作的
Host 10.10.10.28
HostName 10.10.10.28
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.gitlab
测试配置情况
$ ssh -T git@github.com
Hi 7117! You've successfully authenticated, but GitHub does not provide shell access.