前言
当有多个 GitHub 账号时,可能需要用到多个密钥,生成多个不同的公私密钥对,用 SSH 配置文件 ( ~/.ssh/config
) 管理它们。
生成第二个密钥
ssh-keygen -t rsa -C "name@email.com" //填写你的邮箱
Enter file in which to save the key (/Users/you/.ssh/id_rsa): /c/Users/P3TERX/.ssh/id_rsa_github2 // 这里不要 Enter ,手动填写保存路径
<剩下两个直接回车>
完成之后,我们可以看到 ~/.ssh
目录下多了两个文件,变成:
id_rsaid_ras.pub
id_rsa_github2
id_rsa_github2.pub
known_hosts
配置 config
文件
如果没有就新建
cd ~/.ssh/
touch config
添加一个主机别名配置:
Host github2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github2
添加完成后,测试一下:
ssh -T github2
将GitHub SSH仓库地址中的 git@github.com
替换成新建的Host别名。
如原地址是:git@github.com:abc/xyz.git
,替换后应该是:github2:abc/xyz.git
如果是新建的仓库,直接使用替换后的URL克隆即可:
git clone github2:abc/xyz.git
如果已经使用原地址克隆过了,可以使用命令修改:
git remote set-url origin github2:abc/xyz.git
设置局部账户
如果之前设置过全局用户名和邮箱,那么你需要将新添加的账户管理的 repository 下设置局部用户名和邮箱。
git config user.name "yourname"
git config user.email "youremail"
否则虽然能 push ,但 push 上去会显示你之前添加的全局用户的用户名,这可能会导致不必要的麻烦。
或者 unset 全局设置,把每个 repository 分别设置局部用户名和邮箱。
git config --global --unset user.name
git config --global --unset user.email
参考
本文作者:P3TERX
本文链接:https://p3terx.com/archives/github-multiaccount-ssh-key-settings.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。