8bq

光辉岁月

Git多个项目使用不同的公钥和私钥

在github上有多个项目,在公司内部也有两个用Git管理的项目,这几个都要用,而且它们的公钥和私钥还都不一样,肿么办????
首先把公钥和私钥都按以下方式命名好,并且放到.ssh目录下,方便管理(注意公钥和私钥两个文件一个都不能少)

1
2
3
4
5
6
~/.ssh/project1_rsa
~/.ssh/project1_rsa.pub
~/.ssh/project2_rsa
~/.ssh/project2_rsa.pub
~/.ssh/project3_rsa
~/.ssh/project3_rsa.pub

然后在.ssh文件夹下新一个config文件,内容如下:

1
2
3
4
5
6
7
8
9
# Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
Host “project1″
HostName “github.com” #要登录主机的主机名
User “git” #登录名
IdentityFile “~/.ssh/project1_rsa” #指明上面User对应的identityFile路径
Host “project2″
HostName “10.9.210.240″
User “git”
IdentityFile “~/.ssh/project2_rsa”

终端下面运行:

1
$ssh project1

如果出现以下提示:

1
2
3
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to 10.8.210.38 closed.

不要惊慌,这说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令所以它切断了连接。
如果还提示输密码,说明你哪儿配错了。
如果没有提示输密码,git clone 代码试试,如果还提示输入密码,说明你配置错了,如果没有就ok了。