git 同一个账号管理多个github上的库

1. 生成github.com对应的私钥公钥(本文中文件地址C:\Users\popfisher目录)

执行命令ssh-keygen -t rsa -C email 创建github对应的sshkey,命名为id_rsa_github,密码123456 

ssh-keygen-t rsa -C774232122@qq.com


2. 同样的方式生产git.oschina.net的私钥公钥(邮箱地址可以相同可以不同,本文相同)

执行命令ssh-keygen -t rsa -C email创建github对应的sshkey,命名为id_rsa_oschina,密码123456

ssh-keygen-t rsa -C774232122@qq.com


3. 把上面得到的文件拷贝到git默认访问的.ssh目录(win10在用户目录下,本文C:\Users\popfisher.ssh)

除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产的

4. 把github对应的公钥和oschina对应的公钥上传到服务器

 GitHub添加SSH key的方式如下图所示:

5. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可

Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:

Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub

git clone git@mygithub:PopFisher/AndroidRotateAnim.git


HostName 这个是真实的域名地址

IdentityFile 这里是id_rsa的地址

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多多账号同时操作,互不影响了




补充:同一台电脑2个GitHub账号,配置不同sshkey

config 配置如下:

-----------------------------------------------------------

# github account [user1]

Host github.com

HostName github.com

User user1

IdentityFile /c/Users/xxx/.ssh/id_user1_rsa

IdentitiesOnly yes

# github account [user2]

Host github.com

HostName github.com

User user2

IdentityFile /c/Users/xxx/.ssh/id_user2_rsa

IdentitiesOnly yes

-----------------------------------------------------------

在使用时需要注意,不能设置全局的 username 和 email

# 取消全局 username, email

>git config --global --unset user.name

>git config --global --unset user.email

# 如要在repo中使用 user1 进行操作,进入repo目录后,先设置username 和 email,再进行其他操作

>git config user.name "user1"

>git config user.email "user1@xx.mail"

# 同样的,如果想在repo中切换为 user2 进行操作,则重新设置username和email(同上)后,再进行其他操作

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容