Write the Code. Change the World.

11月 21

github 指定 ssh key。之所以会出现这个问题,是因为对于 github,只允许存在一份 ssh key。如果该 ssh key 绑定了 A 账号,B 账号则绑定不了。这个时候就需要再生成一份 ssh key,对新的 ssh key 进行绑定。但是,推送拉取代码的时候,默认是 ~/.ssh/id_rsa。所以这个时候,特定的代码指定特定的 ssh key 就很有必要了。

解决问题

  1. 绑定 ssh key 时,出现 github Key is already in use 的问题。
  2. 多个 ssh key,特定项目指定特定的 ssh key 的问题。

先生成新的 ssh key

# 后边的参数 -f 指定生成 ssh key 对的名字
# 可以不加该参数,回车生成的时候,自己手动输入名字

ssh-keygen -t rsa -C email@email.com -f github

# 一直回车,干到生成为止,此时, `~/.ssh/` 下也许有好几份 ssh key 文件了

特定项目指定 ssh key

这个,在 config 中指定就可以。就像设置 user.name 和 user.email 一样。因为是特定项目使用特定的 ssh key。所以这个时候,不适合使用 --global 参数。

# ~/.ssh/github 这个对应生成的 ssh key 私钥文件
git config core.sshCommand "ssh -i ~/.ssh/github"

# 后边,再 git push 就会 ok 了
git remote add origin xxx
git push --set-upstream origin main

终点

到最后,就是这两个重要的命令。 生成 ssh key 对。进入项目目录,指定 ssh key。 ok 搞定。

# 生
ssh-keygen -t rsa -C email@email.com -f github

# 指
cd xxx
git config core.sshCommand "ssh -i ~/.ssh/github"