在Mac(Linux)上为gitee码云 添加多个公钥 ssh key(适用于github添加)【转】
转自:https://blog.csdn.net/qq_27295403/article/details/85335765
前言:笔者在开发工作中开始准备使用个人码云来完成自己的个人作品,但是之前呢,我已经在本地添加过公司码云账号的ssh key.那如何再设置我们自己的ssh key呢.
码云官网的说明文档(参考此文档):
Git配置多个SSH-Key
接下来我们开始操作
(一)我们应该去生成一个ssh-key:
xxxxx@xx.com是你的码云账号
id_rsa_ldb随意你自己填写,但是请记住
ssh-keygen -t rsa -C 'xxxxx@xx.com' -f ~/.ssh/id_rsa_ldb
(二)在~/.ssh下创建config文件(使用touch config命令)
(三)创建完config文件,vi或vim打开文件,写入
# gitee 第一个ssh-key 公司账号
Host gitee.com #这是主地址
HostName git.oschina.ne #这是码云地址,不变
IdentityFile ~/.ssh/id_rsa #标识文件
User xx@xx.com #写上你的码云账号
# gitee 第二个ssh-key 个人账号
Host gitee.ldb.com #这是主地址
HostName git.oschina.net #这是码云地址,不变
IdentityFile ~/.ssh/id_rsa_ldb #标识文件
User xx@xx.com #写上你的码云账号
(四)在码云上添加自己的公钥
(五)然后在回来终端使用命令测试是否配置成功:ssh -T git@xxx(此字段为Host),以下是测试结果
?完成.这时候就可以开始愉快地使用自己的个人账号了.
(六)可能出现的问题
(1)出现Permission denied提示,则说明有权限问题,而多用户时出现权限问题的原因:
gitee或github使用SSH与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 gitee或github ,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。但是如果是 多用户 (first,second),我们在连接到second的帐号时,second保存的是自己的公钥,但是SSH客户端依然发送默认私钥,即first的私钥,那么这个验证自然无法通过。
解决ssh权限问题:
通常一台电脑生成一个ssh不会有这个问题,当一台电脑生成多个ssh的时候,就可能遇到这个问题,解决步骤如下:
1.查看系统ssh-key代理,执行如下命令
ssh-add -l
以上命令如果输出 The agent has no identities. 则表示没有代理。如果系统有代理,可以执行下面的命令清除代理:
ssh-add -D
2.然后依次将不同的ssh添加代理,执行命令如下:
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_ldb
(2)上传者与我们的码云账号不一致
原来是早已设置了全局的账号,邮箱,我们如果想要使用second的账号和邮箱,则
1.找到项目所在目录下的 .git/文件夹,进入.git/文件夹,然后执行如下命令分别设置用户名和邮箱:
git config user.name "xxx"
git config user.email "xxx@xxx.com"
然后执行命令查看config文件:cat config
发现里面多了刚才配置的用户名和邮箱信息,即成功为该项目单独设置了用户名和邮箱
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://github.com/xxx/xxxx.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
name = xxx
email = xxx@xxx.com
2,如果为所有项目设置默认的用户名和邮箱,则执行如下命令(即多了"--global"修饰,添加为全局变量):
git config --global user.name"xxx"
git config --global user.email"xxx@xxx.com"
参考:Git配置用户名与邮箱
如果有疑问的同学,请留言
————————————————
版权声明:本文为CSDN博主「大唐锦绣」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27295403/article/details/85335765