在GitHub多个帐号上添加SSH公钥

本文介绍如何在本地生成多个SSH密钥,并将其配置到不同的GitHub账号中,以实现从同一台计算机上管理多个GitHub账号的目的。

转载自www.webmaster.me

GitHub后台可以添加多个SSH Keys,但是同一个SSH Keys只能在添加在一个帐号上(添加时提示“Key is already in use”)。理由很容易想到,SSH公钥使用时相当于用户名密码,不可能两个不同的帐号使用同一个用户名密码。要想在多个GitHub帐号上添加公钥,就要在本地生成多个SSH Keys,每个GitHub帐号对应一个不同的SSH Keys。步骤如下:

1、生成一个新的SSH KEY
 
  1. larry@thk:~$ ssh-keygen -t rsa -C 'git@webmaster.me'
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (~/.ssh/id_rsa): ~/.ssh/id_rsa2 #这里输入一个新的ssh key文件名
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in ~/.ssh/id_rsa2.
  7. Your public key has been saved in ~/.ssh/id_rsa2.pub.
  8. The key fingerprint is:
  9. 3a:01:17:b3:f9:26:5b:53:b3:69:be:71:a8:66:f6:96 git@webmaster.me
  10. The key's randomart image is:
  11. +--[ RSA 2048]----+
  12. | o |
  13. | = |
  14. | . + o |
  15. | . . . + |
  16. | o S + |
  17. | B + . |
  18. | + .+ + |
  19. | .E..+ |
  20. | +.oo |
  21. +-----------------+
  22. larry@thk:~$ ssh-add ~/.ssh/id_rsa2
  23. Identity added: ~/.ssh/id_rsa2 (~/.ssh/id_rsa2)

~/.ssh/id_rsa2为新SSH Keys文件名,根据实际情况修改,保证每次不一样即可。
2、打开新生成的~/.ssh/id_rsa2.pub文件,将里面的内容添加到GitHub后台。
3、打开~/.ssh/config文件(没有则创建),添加一个Host:

 
  1. #建一个github别名,新建的帐号使用这个别名做克隆和更新
  2. Host github2
  3. HostName github.com
  4. User git
  5. IdentityFile ~/.ssh/id_rsa2.pub

4、将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名。
如原地址是:git@github.com:freehost/mail.git,替换后应该是:github2:freehost/mail.git
如果是新建的仓库,直接使用替换后的URL克隆即可。如果已经使用原地址克隆过了,可以使用命令修改:

 
  1. git remote set-url origin github2:freehost/mail.git
Git Bash 中配置 SSH 公钥以便与 GitHub 通信,涉及生成密钥对、将公钥添加GitHub 账户以及测试连接几个关键步骤。以下是详细的配置流程: ### 生成 SSH 密钥对 如果尚未生成 SSH 密钥对,可以通过以下命令生成。SSH 密钥对由一个私钥(通常为 `~/.ssh/id_rsa`)和一个公钥(`~/.ssh/id_rsa.pub`)组成。私钥应严格保密,而公钥则可以安全地提供给 GitHub 进行身份验证[^2]。 ```bash ssh-keygen -t rsa -b 4096 -C "your.email@example.com" ``` 执行上述命令时,系统会提示您输入保存密钥的文件路径和可选的密码。如果直接按回车键,则会使用默认路径 `~/.ssh/id_rsa` 并且不会设置密码。 ### 添加 SSH 密钥到 GitHub 账户 生成密钥对后,需要将公钥内容复制到 GitHub 账户中。可以通过以下命令查看公钥内容: ```bash cat ~/.ssh/id_rsa.pub ``` 然后,登录 GitHub 账户,进入 **Settings > SSH and GPG keys** 页面,点击 **New SSH key** 按钮,将复制的公钥粘贴到相应的输入框中,并为该密钥指定一个标题(例如“Work Laptop”),最后点击 **Add SSH key** 完成添加。 ### 测试 SSH 连接 为了验证 SSH 配置是否正确,可以使用以下命令测试与 GitHub 的连接: ```bash ssh -T git@github.com ``` 如果一切正常,系统将返回一条欢迎信息,例如: ``` Hi username! You've successfully authenticated, but GitHub does not provide shell access. ``` 如果遇到连接问题,可以尝试使用 `ssh -vT git@github.com` 命令获取更详细的调试信息,帮助定位问题所在。 ### 设置默认 Git 用户信息(可选) 在使用 Git 时,建议配置全局的用户名和邮箱,以便在提交代码时正确标识身份。可以通过以下命令设置: ```bash git config --global user.name "Your Name" git config --global user.email "your.email@example.com" ``` 这些信息将用于所有 Git 仓库的提交记录中,除非在特定仓库中重新配置。 ### 配置多个 GitHub 账户(可选) 如果需要使用多个 GitHub 账户,可以通过配置 SSH Host 别名来区分。编辑 `~/.ssh/config` 文件,添加如下内容: ``` # Default account Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa # Work account Host github-work HostName github.com User git IdentityFile ~/.ssh/id_rsa_work ``` 在此配置中,`github.com` 代表默认账户,而 `github-work` 是工作账户的别名。当克隆仓库时,可以使用对应的 Host 别名代替 `github.com`,例如: ```bash git clone git@github-work:username/repo.git ``` 这样即可根据不同的 Host 别名使用不同的 SSH 密钥进行身份验证[^1]。 ### 总结 通过上述步骤,可以在 Git Bash 中成功配置 SSH 公钥,实现与 GitHub 的安全通信。此外,还可以根据需要配置多个 GitHub 账户,并确保 Git 提交信息的正确性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值