我在开发中,遇到过一台设备,可能会有多个Git网站,多个账号,所以会有配置多个SSH秘钥的需求,下面是操作流程:
1、打开终端,执行下面命令,进入ssh文件夹
cd ~/.ssh
如果没有ssh文件夹,执行第2步
如果进入ssh文件夹,直接看第3步,切记:以后命令都是在SSH文件夹下执行的
2、在终端执行
ssh-keygen -t rsa -C "xxx"
然后直接两次回车,系统会自动生成ssh文件,再次执行第一步,进入SSH文件夹后可将刚才生成两个临时文件删除哈
3、在ssh文件夹目录下,生成SSH秘钥,其中密钥的名字,我的命名风格:
平台域名账号邮箱登录电脑(不是必须只用邮箱
,意外吧,哈哈)
在终端执行生成命令:
// 账号1
ssh-keygen -t rsa -C "gitee_111@163.com_MBP15"
id_rsa_gitee_111@163.com_MBP15
没有密码
// 账号2
ssh-keygen -t rsa -C "gitee_222@163.com_MBP15"
id_rsa_gitee_xxx@163.com_MBP15
没有密码
此时,ssh文件夹下面会生成SSH秘钥
4、配置SSH秘钥到对应的域名
在ssh文件夹下面生成一个config文件,并输入下面内容:
Host gitee
HostName gitee.com
User git
PreferredAuthentications publickey
#下面是私钥名字,没有pub后缀
IdentityFile ~/.ssh/id_rsa_gitee_111@163.com_MBP15
IdentityFile ~/.ssh/id_rsa_gitee_222@163.com_MBP15
5、将SSH将专有密钥添加到 ssh-agent 中
在终端执行下面命令
ssh-add ~/.ssh/id_rsa_gitee_111@163.com_MBP15
ssh-add ~/.ssh/id_rsa_gitee_222@163.com_MBP15
终端显示Identity added开头,表示加入成功
此时,SSH文件夹下面会自动生成knows_hosts文件
下面是常用命令,大家可以试试
ssh-agent bash //开启sshagent
ssh-add -l //查看已加入的
ssh-add -D //删除所有已经加入的id_rsa
6、验证,并将IP加入到known_hosts文件
ssh -T gitee.com
终端会显示Permission denied (publickey),别怕,下一步
7、将SSH文件夹下面的PUB文件里面的内容,拷贝到相应的git网站里面,
就可以下载代码了
8、MacOS每次重启,秘钥会丢失
这个是MacOS修改了规则,目前MacOS12的做法,建议一个自动任务,开机时自动执行第5步
参考流程://www.greatytc.com/p/df6e0ca58b78
写个文章,留个备份。。。