当mac 上的不同项目分别在不同的代码管理平台上时(比如, 项目A 在gitlab 上, 项目B 在github 上, 且两个管理平台的登录账号不相同时), 就需要对应的配置他们不同的秘钥.
1. 检查是否存在SSH Key
cd ~/.ssh
ls
或者
ll
// 看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
当你已经配置过一个或者过个项目的话, 应该是类似下面这样的:2. 添加新的SSH Key
ssh-keygen -t rsa -C "你的邮箱A"
注意:
在终端输入以上代码Enter 后, 会有三步回车操作, 需要注意第一步操作
- 第一步Enter 代表确认生成的ssh key 的名称, 也就是出现
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa):
这句话的时候, 要输入新的秘钥名称, 否则名称还是默认的id_rsa 、id_rsa.pub
// 一般都以下划线 + 自定字符串即可(例如)
.ssh/id_rsa_tesest
三次Enter 之后就能得到如下截图:
- 第二步Enter 代表打开该ssh 文件的密码(直接回车代表没有)
- 第三步Enter 代表密码确认
最后, 只需要把邮箱A 对应的秘钥添加到邮箱A 登录的托管平台即可:
// 获取key
cat id_rsa.pub
3. 当使用xcode/ sourceTree 等工具直接管理新代码时, 可能会导致git 上不存在新的代码管理平台的账号和密码以及ssh key, 所以需要手动配置一下
3.1 修改全局
// 设置git 的user name 和email
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
3.2 修改单个仓库
cd 你需要的仓库路径下
git config user.name "你的名字"
git config user.email "你的邮箱"
3.3 当设置完成以后, 还要手动添加 ssh key 到git
// (xxx为自己的主机名)
ssh-add -k /Users/xxx/.ssh/id_rsa_tesest
注:
3.3 这种操作也能避免多次的输入密码, 因为多次的输入密码, 就是因为安全连接没有建立成功, 也就是缺少ssh key.
4. 注意点
- 现存问题: 当电脑重启后, 就会失去后添加的私钥的认证, 这时你提交或者拉取代码的时候还需要验证, 一般情况下就是提示你输入密码.
- 解决办法:
需要重新添加一下, 也就是再次执行一下3.3 操作.
.End