同一主机配置多个代码托管平台的SSH秘钥

当mac 上的不同项目分别在不同的代码管理平台上时(比如, 项目A 在gitlab 上, 项目B 在github 上, 且两个管理平台的登录账号不相同时), 就需要对应的配置他们不同的秘钥.

1. 检查是否存在SSH Key

cd ~/.ssh
ls
或者
ll
// 看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key

当你已经配置过一个或者过个项目的话, 应该是类似下面这样的:
存在.ssh文件, 且存在默认命名的公钥和私钥

2. 添加新的SSH Key

ssh-keygen -t rsa -C "你的邮箱A"

注意: 在终端输入以上代码Enter 后, 会有三步回车操作, 需要注意第一步操作

  1. 第一步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
  1. 第二步Enter 代表打开该ssh 文件的密码(直接回车代表没有)
  2. 第三步Enter 代表密码确认

三次Enter 之后就能得到如下截图:
邮箱A 对应的ssh key

最后, 只需要把邮箱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

你可能感兴趣的:(同一主机配置多个代码托管平台的SSH秘钥)