背景:
需要一个gitee账号来学习使用。但是配置完git的时候,git clone时报错“You do not have permission to pull the repository...”
git config --list查看。结果发现账号显示的是公司项目的码云git账号
然后上网查了很多资料。都已然报错。
后来综合了大部分的资料的方法后。终于可以了
关键的几点:
1,生成一个别名的公钥和私钥:ssh-keygen-trsa-C'xxxxx@company.com'-f~/.ssh/gitee_forPersonal_id_rsa
2, 把这个gitee_forPersonal_id_rsa添加到ssh信任列表
ssh-add ~/.ssh/gitee_forPersonal_id_rsa
(请注意这里可能会报错 Could not open a connection to your authentication agent.)
解决办法:先执行命令 ssh-agent bash 再执行上面的添加。即可
3,配置config(最重要的一步)
cd ~/.ssh
touch config
vim confg
把如下拷贝到config里
# 公钥1
Host company
HostName gitee.com
User xxx@company.com
IdentityFile ~/.ssh/id_rsa
# 公钥2
Host personal
HostName gitee.com
User 2710*******@qq.com
IdentityFile ~/.ssh/gitee_forPersonal_id_rsa
HostName 这个是真实的域名地址
IdentityFile 这里是id_rsa的地址
PreferredAuthentications配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User 配置使用用户名
每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
2, 解除原git的全局账号设置:
git config --global --unset user.name
git config --global --unset user.email
4,再到对应(原先的和现在新的)项目里设置具体的账号:
cd f:
cd myProject
git config user.name "Your name"
git config user.email your_email@gmail.com
网友评论