管理多个 GitHub 账户时,可以使用不同的 SSH 公钥来为每个账户提供访问权限。以下是在本机生成多个 SSH 公钥并为每个 GitHub 账户添加相应公钥的步骤:
-
生成 SSH 密钥对: 打开终端(在 Linux 或 macOS 上)或 Git Bash(在 Windows 上),使用
ssh-keygen
命令生成新的 SSH 密钥对。对于每个 GitHub 账户,重复以下步骤:1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将
"your_email@example.com"
替换为你的电子邮件地址。-t rsa
指定密钥类型为 RSA,-b 4096
指定密钥长度为 4096 位。 -
命名密钥文件: 在提示保存密钥对时,你可以使用默认文件名(如
~/.ssh/id_rsa
),或者为每个 GitHub 账户指定不同的文件名,例如:1
Enter file in which to save the key (/c/Users/YourName/.ssh/id_rsa): /c/Users/YourName/.ssh/id_rsa_work
这样,你就可以区分不同账户的密钥。
-
设置密钥访问权限: 为确保安全性,应该只让文件所有者访问私钥:
1
chmod 600 /c/Users/YourName/.ssh/id_rsa_work
-
添加 SSH 公钥到 GitHub 账户:
- 打开生成的公钥文件(默认为
.pub
扩展名),例如id_rsa_work.pub
。 - 复制公钥内容。
- 登录到对应的 GitHub 账户。
- 访问 Settings > SSH and GPG keys > New SSH key,粘贴你的公钥并命名。
- 点击“Add SSH key”完成添加。
- 打开生成的公钥文件(默认为
-
配置 SSH 以使用特定密钥: 在
~/.ssh/config
文件中添加以下内容,以配置 SSH 客户端使用特定密钥:1 2 3 4 5 6 7 8 9
Host github-work HostName github.com User your_github_username IdentityFile ~/.ssh/id_rsa_work Host github-personal HostName github.com User your_github_username IdentityFile ~/.ssh/id_rsa_personal
将
github-work
和github-personal
替换为你的 GitHub 主机别名,your_github_username
替换为你的 GitHub 用户名,id_rsa_work
和id_rsa_personal
替换为你的密钥文件路径。 -
克隆或推送到 GitHub 仓库: 当你需要克隆或推送到 GitHub 仓库时,使用配置的别名来指定使用哪个密钥:
1
git clone git@github-work:username/repo.git
或者:
1
git push github-personal master
通过这种方式,你可以为每个 GitHub 账户生成和管理不同的 SSH 密钥,从而实现对不同账户的访问控制。记得妥善保管你的私钥文件。