多用户协同:Git部署到多个服务器并配置SSH KEY

需积分: 37 5 下载量 46 浏览量 更新于2024-09-10 收藏 616KB PDF 举报
在IT行业中,多个git服务器同时提交是一项常见的需求,尤其是在进行代码的多服务器部署时,为了提高效率和灵活性,开发者可能需要在单个项目中支持将更改同步到多个Git服务器。本文将详细介绍如何在已有Git项目中配置多个远端URL,并解决频繁输入用户名和密码的问题,以及使用SSH密钥对来实现不同账户对不同Git服务器的访问。 首先,要在一个Git项目中添加多个远端URL,你需要在项目的`.git/config`文件中进行配置。通过`cd`进入项目的`.git`目录,运行`git remote -v`命令查看当前已有的远程仓库(默认是`origin`)。接下来,使用`cat config`查看当前配置内容,找到`remote`部分,然后添加一个新的远程仓库URL,如: ```shell # 在原有配置后添加新的远端仓库URL git remote set-url --add origin https://git.oschina.net/pdsz/network.git ``` 这个操作使得项目可以同时向两个Git服务器推送代码。然而,每次提交时都需要输入两个服务器的用户名和密码,这显然是不便捷的。为了解决这个问题,你需要利用SSH密钥对,这样可以避免每次都输入密码。 在用户主目录的`~/.ssh`文件夹中,创建或编辑`id_rsa`(私钥)和`id_rsa.pub`(公钥)文件。设置全局的用户名和邮箱信息: ```shell # 设置全局用户信息 git config --global user.name "limingxiao" git config --global user.email "limingxiao@kingsoft.com" ``` 接着,使用`ssh-keygen`生成SSH密钥对,例如为GitLab提供密钥对: ```shell ssh-keygen -t rsa -C "limingxiao@kingsoft.com" ``` 生成的公钥会在`~/.ssh/id_rsa.pub`中,将其复制到GitLab的个人设置中对应的公钥区域。请注意确保公钥内容没有多余的空格或其他非法字符,以免添加失败。 在实际应用中,项目的SSH密钥与用户的SSH密钥有区别。项目SSH密钥是为特定项目生成的,通常只允许拉取项目代码,而不会推送,这适用于从生产服务器安全地获取代码。用户的SSH密钥则关联到用户账号,它赋予用户推送和拉取权限,包括对自己和参与的项目。 总结来说,通过在`.git/config`中添加多个远程仓库URL,配合SSH密钥对,可以实现同一个项目在多个Git服务器之间无缝提交和协作。同时,使用用户的SSH密钥管理多个服务器的登录凭证,提高了工作效率并增强了安全性。记住,确保在设置过程中遵循正确的文件路径和格式,以避免任何配置错误。