如果需要在同一台机器上使用不同的git账户,则需要为每个账户单独配置一个ssh密钥对,本文讲述在*nix系统下的配置方法,方法如下:
- 使用命令
ssh-keygen -t rsa
生成第一个密钥,一般默认目录是用户目录下的.ssh目录,文件名为id_rsa,密码可有可无吧,如果设置了密码,则在每次需要用到这个ssh密钥时都需要输入密码才行(直接回车则没有密码)。
- 使用同样的方式生成第二个密钥
ssh-keygen -t rsa -C "your.comment"
,-C参数设置密钥的注释,默认是用户在系统中的用户名@机器名
,仅仅为了方便人辨别。注意密钥的文件名必须和第一个不一样,否则会覆盖掉原来的密钥文件,假设我们此处使用的是id_rsa_example2,如下图。注意,由于笔者使用的是MAC,.ssh目录是/Users/user_name/.ssh
,如果是linux用户,目录应该是/home/user_name/.ssh
。.ssh目录是默认存放ssh密钥的目录,当然用户也可以自定义目录,但是管理会比较麻烦,建议使用默认目录。
-
此时.ssh目录下应该已经至少有4个文件,如下:
id_rsa, id_rsa.pub, id_rsa_example2, id_rsa_example2.pub
-
将**.pub文件分别添加到两个不同的git账户的ssh key中。
-
在~/.ssh目录下执行以下命令
touch config
并将以下内容编辑到文件中,随便使用什么编辑器都好
注意:
- 其中HostName是git的域名,此处以github为例,因此HostName是github.com。
- User都是git
- IdentiryFile就是存放密钥文件的位置
- Host后面的名字是别名,后面还会用到
- 将目录更改到git项目目录,设置远程仓库的url地址:
git remote add origin git@github.com:your_git_username/your_repo_name.git
或者
git remote add origin git@github-2.com:your_git_username/your_repo_name.git
如果origin已经存在,则要将add改为set-url,即
git remote set-url origin....后面的一串
注意:
- @前面的git就是刚刚config文件中的username
- @后面的github-2.com就是刚刚设置的别名,由于服务器都是git,所以二者的hostname是一样的,ssh通过后面的别名来对应config,识别主机名和认证文件。
在不同的项目下设置不同的url地址,就可以实现一人使用多个git账户
网友评论