GIT SSH多账户配置

好久不见. 提交于 2019-12-03 10:35:46

1、生成多对公私钥对应多个git服务器并将公钥copy到服务器上

ssh-keygen -t rsa -C "chenyh@yunhetong.net" -f id_rsa_work
ssh-keygen -t rsa -C "hzchenyh@163.com" -f id_rsa_osc

2、配置全局config

全局配置文件在~/.ssh/下的config文件中:

# oschina(hzcheyh@163.com)	========================================
Host osc
	HostName git.oschina.net
	User hzchenyh@163.com
	IdentityFile ~/.ssh/id_rsa_osc
# yunhetong(chenyh@yunhetong.net)	========================================
Host yunhetong
	HostName 120.20.72.179
	Port 7999
	User git
	IdentityFile ~/.ssh/id_rsa_work

3、ssh测试连通性

#测试ssh到osc的连通性(osc即为上面配置的host别名) 
ssh -T git@osc

4、取消git全局name和email配置,并为每个项目设置独立的name和email

#取消git全局config  
git config --global --unset user.name
git config --global --unset user.email

#(公司项目)进入项目目录下,为每个项目设置name和email 
git config user.name 醉公子
git config user.email chenyh@yunhetong.net

#(自己项目)进入项目目录下,为每个项目设置name和email  
git config user.name 醉公子osc
git config user.email hzchenyh@163.com

5、修改每个项目中.git目录下的config文件的配置

[core]
......
[remote "origin"]
	#url = ssh://git@120.20.72.179:7999/chenyh/user.git    此为原始URL,经上面的host替换后如下所示
	url = ssh://git@yunhetong/chenyh/user.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[user]
	name = 醉公子
	email = chenyh@yunhetong.net
[core]
......
[remote "origin"]
	#url = git@git.oschina.net:hzchenyh/jfinal.git
	url = git@osc:hzchenyh/jfinalBlog.git
	fetch = +refs/heads/*:refs/remotes/origin/*

# 以下表示本地默认分支master和远程分支master的一个对应关系
[branch "master"]
	remote = origin
	merge = refs/heads/master
[user]
	name = 醉公子osc
	email = hzchenyh@163.com

ref:

https://gist.github.com/suziewong/4378434

http://www.liaohuqiu.net/cn/posts/using-diffrent-user-config-for-different-repository/

http://www.liaohuqiu.net/cn/posts/git-setup-and-setting/

http://www.blogjava.net/lishunli/archive/2012/03/08/371556.html

https://segmentfault.com/a/1190000002994742

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!