1. 进入ssh文件夹
cd ~
cd .ssh
2. 重新生成github和gitlab的密钥,并且在两个网站上添加新的ssh
ssh-keygen -t rsa -C '我们的gitlab邮箱' -f ~/.ssh/id_rsa_gitlab
ssh-keygen -t rsa -C '注册github账户的邮箱' -f ~/.ssh/id_rsa_github
//两次回车直接生成个人邮箱相关密钥
3. 目录下可以看到生成的密钥文件,默认状态是生成id_rsa和id_rsa.pub
gitlab
github
其他的代码管理网站,应该也是一样的操作哈。如果有啥其他的网站,可以评论下滴滴我,我去学学~
4. 创建&配置config文件(最好不要直接取同名,取了同名会有警告和其他文件重名),管理ssh 会话
touch config
vim config
按 shift + i,进入书写模式。注意:config有它严格的格式,不能有注释,也就是要把注释去掉,不然读取不到的。
Host github.com
HostName github.com
User xxx@163.com //user后边为github的邮箱
IdentityFile ~/.ssh/id_rsa
Host gitlab.xxx.cn //host后边为公司gitlab域名
HostName gitlab.xxx.cn //同上为公司gitlab域名
User xxx@163.com //user后为gitlab的邮箱
IdentityFile ~/.ssh/id_rsa_gitlab
写完后,按住esc,切换模式。保存并且退出:先写入:w,在写入:q 就可以啦
最好再次进入vim config看看是否写好了。
5. 测试ssh连接
通过本地和远程网站配置的ssh,现在来测试一下ssh是否连接成功
ssh -T git@github.com //输入的是网站域名
ssh -T git@gitlab.xxx.cn
注意:
如果是第一次进行ssh -T
的操作,会出现Are you sure you want to continue connecting (yes/no/[fingerprint])?
,直接yes之后enter就可以了。如果不进行这个操作,你会看到
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Host key verification failed.
fatal: Could not read from remote repository.
成功:
失败:
Permission denied (publickey)
//说明本地和网站没有匹配的ssh
6. 本地配置、全局配置
因为公司是用的gitlab,所以本地配置是用的gitlab的用户名和邮箱,全局用的是github,毕竟你一般的项目都是放到github上面的,我觉得可以放在全局配置。
看到网上说的是这样,但是具体为何要这样做,我也不是很了解。
// 本地配置
$ git config --local user.name 'gitlab账号名'
$ git config --local user.email '公司账号邮箱'
// 全局配置
$ git config --global user.name '个人github账号名'
$ git config --global user.email '个人github账号邮箱'