[老物搬运有修改]

环境: win7 + gitbash

有时候在工作和学习时我们有不同的github账户,可能不同项目还有不同的ssh key,或者既有github账户又有码云账户以及自己的gitblit账户,比如我有两个github两个码云以及一个gitblit,一个ssh key怎么够啊摔,所以不同账户的key要好好管理,从本地跑去提交的时候才不会迷路ヽ( ̄▽ ̄)ノ

生成ssh-key

在git-bash输入ssh-keygen -t rsa -C '用户邮箱'
为了便于管理,Enter file in which to save the key最好输入存放key的文件名称,如/c/Users/你的用户名/.ssh/ssh-test,然后enter到最后就可以了~

注:如果没有输入目录则生成的文件在命令行运行的目录下,默认名称id_rsa,建议将key统一放在C:\Users\你的用户名\.ssh目录下
生成之后在目录下可以看到:

修改配置文件

编辑.ssh目录下的config文件(没有则创建),格式如下;

1
2
3
4
5
6
Host 别名(如github1)
User 用户名
Hostname github.com(这里才是真正的主机名)
PreferredAuthentications publickey
IdentityFile 存放公钥的文件(如~/.ssh/id_rsa)
IdentitiesOnly yes

重点来了,本地项目下的.git/config文件中的remote地址一定要跟config文件中的别名对应!

以github的ssh地址为例:
Host为github001,那么remote地址就为git@github001:你的用户名/你的项目地址

下图左边是我的ssh config配置,右边是两个项目的.git/config配置,可以看到url和host别名是一一对应的(第一个是github,第二个是gitblit)