1.方法:
流程
1.删除全局设置
git config --global --unset user.name
git config --global --unset user.email
2.生成ssh秘钥
cd ~/.ssh
根据不同的秘钥生成算法生成秘钥,例如rsa算法
-f参数后面为秘钥命名,需要设置成可区别出不同仓库
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "xxxxx@gmail.com"
3.将私钥添加到本地
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa_github
可使用ssh-add -l
查看是否添加成功
4.管理不同平台的秘钥
其他不同仓库网站的秘钥创建流程相同
创建config文件管理秘钥及其对应网站
cd ~/.ssh
touch config
vim config
#网站的别名,随意取
Host github
# 托管网站的域名
HostName github.com
# 托管网站上的用户名,GitHub用户名
User ttttdx
# 使用的密钥文件
IdentityFile ~/.ssh/id_rsa_github
# GitLab的配置与上面的GitHub类似
Host gitlab
HostName git.xxx.com
User keyou.chen
IdentityFile ~/.ssh/id_rsa_gitlab
windows前边类似,配置文件写法有些区别:
Host codeup.aliyun.com //别名取与主机名相同,这样在使用ssh验证时,不会出错
HostName codeup.aliyun.com
User 709299880
IdentityFile ~/.ssh/id_ed_aliyun
PreferredAuthentications publickey
5.设置ssh文件内的权限
chmod 600 ~/.ssh/*
需要注意的是,windows在设置完上述内容时,为了不使用全局用户名和密码,在建立本地仓库时,需要指定该仓库的局部用户和邮箱,即 ====》,否则无法自动识别出用户名和邮箱导致git操作失败。
进入项目目录,打开终端输入以下命令进行绑定(每个仓库都需配置):
#一定要配置正确的用户
6.查看是否设置成功
ssh -T git@xxx.com
clone及上传流程
git clone git@gitlab.com:xxxxx.git//gitlab.com与config中的Host相同
cd到下载完成的文件夹
git config user.name "xxxx"
git config user.email "xxxx@xxx.com"
#查看当前仓库用户名
git config user.name
#查看当前仓库邮箱
git config user.email
git add .
git commit -m "xx"
git push
2.问题及解决
在使用阿里云code平台时,第一次克隆密码如果输入错误
windows克隆密码输入错误后,本地克隆密码的重置
macos:搜索钥匙链:keychain