解说GIT多个项目使用不同的公钥和私钥

2015年03月22日 11:44 0 点赞 0 评论 更新于 2025-11-21 18:07

在使用GIT管理多个项目时,有时需要为不同的项目使用不同的公钥和私钥。下面将详细介绍如何实现这一配置。

1. 密钥命名与存放

首先,把公钥和私钥按照特定方式命名,并放置在 .ssh 目录下,这样便于管理。需要注意的是,公钥和私钥文件必须成对存在,缺一不可。示例如下:

~/.ssh/project1_rsa
~/.ssh/project1_rsa.pub
~/.ssh/project2_rsa
~/.ssh/project2_rsa.pub
~/.ssh/project3_rsa
~/.ssh/project3_rsa.pub

2. 创建并配置 config 文件

接着,在 .ssh 文件夹下创建一个 config 文件,其内容用于指定不同项目对应的主机名和SSH密钥文件。以下是 config 文件的详细配置说明:

# 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

# 可根据实际需求添加更多项目的配置...

3. 测试配置

在终端中运行以下命令进行测试:

$ ssh project1

可能出现的情况及处理方式

情况一:出现特定提示信息

如果出现如下提示:

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 命令,所以它切断了连接,这属于正常现象。

情况二:提示输入密码

如果提示输入密码,说明配置可能存在错误。此时需要仔细检查 config 文件中的主机名、用户名和密钥文件路径是否正确。

情况三:未提示输入密码

若没有提示输入密码,可以尝试使用 git clone 命令克隆代码:

$ git clone git@project1:your-repo.git

如果克隆时仍然提示输入密码,说明配置存在问题,需要再次检查并修正;若没有提示输入密码,则说明配置成功。

Author: admin | Categories: GIT、工作间 | Tags: git、不同的、公钥和私钥

作者信息

menghao

menghao

共发布了 3994 篇文章