- 1. 生成github.com对应的私钥公钥(本文中文件地址C:\Users\popfisher目录)
- 2. 同样的方式生产git.oschina.net的私钥公钥(邮箱地址可以相同可以不同,本文相同)
- 3. 把上面得到的文件拷贝到git默认访问的.ssh目录(win10在用户目录下,本文C:\Users\popfisher.ssh)
- 4. 把github对应的公钥和oschina对应的公钥上传到服务器
- 5. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)
- 6. 打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)
- 7. 测试成功之后就可以在电脑上同时使用git多多账号同时操作,互不影响了
本文以配置github.com账号和git.oschina.net账号来逐步演示在 Windows 环境下配置Git 多账号支持即在同一个电脑上管理多个 ssh-key,对 git 多一分了解。
备注: 这篇文章所有执行命令的地方都是在管理员模式下进行,即打开cmd,Git Bash客户端用管理员身份运行程序。
1. 生成github.com对应的私钥公钥(本文中文件地址C:\Users\popfisher目录)
执行命令 ssh-keygen -t rsa -C email创建 github 对应的 sshkey,命名为id_rsa_github,密码 123456
ssh-keygen -t rsa -C
774232122@qq.com
2. 同样的方式生产git.oschina.net的私钥公钥(邮箱地址可以相同可以不同,本文相同)
执行命令ssh-keygen -t rsa -C email创建 github 对应的 sshkey,命名为id_rsa_oschina,密码 123456
ssh-keygen -t rsa -C
774232122@qq.com
3. 把上面得到的文件拷贝到git默认访问的.ssh目录(win10在用户目录下,本文C:\Users\popfisher.ssh)
除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产的
4. 把github对应的公钥和oschina对应的公钥上传到服务器
GitHub 添加 SSH key 的方式如下图所示:
git.oschina.net 添加 SSH key 的方式如下图所示:
5. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)
每个账号单独配置一个Host,每个Host要取一个别名,每个 Host 主要配置HostName和IdentityFile两个属性即可
Host的名字可以取为自己喜欢的名字,注意:这个会影响 git 相关命令,例如:
Host mygithub 这样定义的话,命令如下,即 git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git
否则,就会提示"Permission denied (publickey)"
此类的提示。
所以,一般建议Host和HostName保持一致。
HostName 这个是真实的域名地址,例如github.com
IdentityFile 这里是 id_rsa 的文件路径,例如 C:\Users\XXW.ssh\rsa_github 或 ~/.ssh/rsa_github
PreferredAuthentications 配置登录时用什么权限认证 — 可设为publickey,password publickey,keyboard-interactive 等
User 配置使用用户名
config 文件配置如下:
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github
PreferredAuthentications publickey
User username1
# 配置git.oschina.net
Host git.oschina.net
HostName git.oschina.net
IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina
PreferredAuthentications publickey
User username2
6. 打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)
7. 测试成功之后就可以在电脑上同时使用git多多账号同时操作,互不影响了
clone github 上的项目 AndroidRotateAnim
打开 github 上AndroidRotateAnim项目,复制其对应的 clone 命令入下图所示
执行 clone 命令如下:
clone oschina.net 上的项目 AndroidDevTools
打开 git.oschina.net 上AndroidDevTools项目,复制其对应的 clone 命令入下图所示
执行 clone 命令如下:
在使用 git 的过程中,一般都只关注单账号的情况吗,工作中的配置也是直接由自己的上级发一个配置文档之类的东西,然后对着搞一遍就行了,可是当自己真正有这个需求的时候,突然发现束手无策。我自己当时也属于这个情况,有一天在家里,突然发现自己需要一台电脑支持多个 SSH key 的时候才发现自己不知道怎么下手了,于是就下定决心自己动手研究一下。对于技术,还是要亲自动手实践,实践出来的东西才能形成自己的真理,才不那么容易忘记。
https://www.cnblogs.com/popfisher/p/5731232.html