`

小组级git服务器的搭建

 
阅读更多

1、公钥的生成

任何一个需要使用git服务器的工程师都需要生成一个ssh的公钥。可以通过ssh-keygen来生成
~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/shizhen/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/shizhen/.ssh/id_rsa.
Your public key has been saved in /home/shizhen/.ssh/id_rsa.pub.
The key fingerprint is:
a8:19:49:f4:e6:e8:4f:8f:3e:47:c9:19:4c:09:ee:7f shizhen@sz-desktop
The key's randomart image is:
首先会让你输入要保存公钥的位置,直接回车即可,接着会提示让你重复一个密码两次,如果不想再使用公钥的时候输入密码,直接回车即可。完成后会在home目录下的.ssh目录中生成两个文件id_rsa(私有密钥)和id_rsa.pub(公钥)。
将生成的公钥即id_rsa.pub发给git仓库的管理者。

2、架设服务器

(1)服务器端
最好建立一个git组,让后再添加一个git用户,并且添加到该组当中。
sudo adduser git
su git
cd ~
mkdir .ssh
在git用户新建一个.ssh的目录,将开发者的SSH公钥添加到git这个用户的authorized_keys这个文件当中。如有zhangsan,lisi两个开发者。
cat /tmp/id_rsa_zhangsan.pub >> ~/.ssh/authorized_keys
cat /tmp/id_rsa_lisi.pub >> ~/.ssh/authorized_keys
建立一个空的仓库
cd work
mkdir project.git
cd project.git
git --bare init
使用--bare会初始化一个不带任何工作目录的仓库,不会看到工程源码。
为了不使开发者每次clone代码的时候都输入ip地址,可以采用DNS的方式。具体操作如下
sudo vim /etc/hosts
在里面加入下面一行
192.168.1.100 gitserver
(2)开发者端
若没有仓库的情况下,需要首先新建一个仓库。在需要建立仓库的,目录下执行以下的命令。
cd my_project
git init
git add . (将所有文件加入仓库管理)
git commit -m "initial commit"
git push origin master
若本地已有仓库,但想把其中的代码push到我们新的服务器上,可以直接用下面的命令
把想要push的分支代码新建成master分支
git checkout -b master xxxxx
git push origin master
这样一个简单的服务器就可以工作了,其他的开发者可以直接从服务器上进行代码开发了。
 
为了保护git服务器,限制开发者登陆服务器,可以采用如下的措施。
sudo vim /etc/passwd
在文件结尾找到这样的类
git:x:1001:1001:,,,:/home/git:/bin/bash
将其中的/bin/bash/改为/user/bin/git-shell
现在开发者只能通过SSH来推送和获取代码,不能登陆ssh服务端了。

3.问题

現在的 ssh 使用同樣的方法會出現錯誤訊息

Agent admitted failure to sign using the key


解決方式 使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa)

即各自的开发者执行命令

ssh-add id_rsa

分享到:
评论

相关推荐

    gitlib 服务搭建以及结合Eclipse使用

    #### 一、GitLab 服务器搭建步骤 本章节将详细介绍如何在 Linux 系统上搭建 GitLab 服务,并将其与 Eclipse 集成。 ##### 1.1 安装与配置必要依赖 在开始安装 GitLab 之前,首先需要确保服务器上已经安装了一些...

    自创邀请赛小组唯一官方网站.zip

    标题 "自创邀请赛小组唯一官方网站.zip" 暗示这是一个与编程竞赛或者技术挑战相关的资源包,可能是某个自创的编程邀请赛的...对于学习和理解如何搭建这样的系统,或者参与类似项目的人来说,这是一个宝贵的实践案例。

    基于PHP的ThinkSAAS 开源小组php社区统.zip

    6. **安全性**:在使用ThinkSAAS搭建社区时,必须了解如何防范SQL注入、XSS攻击、CSRF等网络安全问题,确保用户数据的安全。 7. **API接口**:社区系统可能需要与其他服务集成,因此理解RESTful API设计和调用,...

    服务器安全运维规范.docx

    - **实践方法**:组织代码审计小组,定期进行代码复查。 - **目标**:提高代码质量,减少安全风险。 3. **服务器安全加固**:通过对服务器进行基本的安全配置,可以显著增强其安全性。 - **具体措施**:设置安全...

    ELWG前端学习小组任务提交处.zip

    - Node.js:运行JavaScript的服务器端环境,通常用于搭建本地开发环境。 - Babel:将ES6+代码转换为浏览器兼容的ES5代码。 - ESLint:代码质量检查工具,保持代码风格一致,避免潜在错误。 6. **性能优化** -懒...

    高职Linux教学探讨.pdf

    5. **服务器配置**:包括Web服务器(Apache或Nginx)、数据库服务器(MySQL或PostgreSQL)、邮件服务器等的搭建与管理。 6. **脚本编写**:讲解bash脚本语言,使学生能够编写自动化任务。 7. **开源文化与社区参与...

    配置管理工具

    程序开发负责人主要负责软件源码及相关文档资料的编写、设置产品版本号、提交源码及文档至CVS服务器、更新CVS服务器上的源码和文档,对自己负责的小组所开发的软件源代码进行统一的管理。 在软件配置管理实施环境中...

    marblewolf:基于网络的小组视频聊天

    1. **服务器端**:使用Node.js搭建,负责处理用户连接、视频流处理、游戏逻辑和数据存储。 2. **客户端**:基于Web技术(HTML、CSS和JavaScript)构建,提供用户界面和交互功能,可能使用WebRTC等技术实现实时音视频...

    mente-fitness:Manu、Polly 和 Romero 小组的最终项目

    如果项目涉及到服务器端逻辑,他们可能利用Node.js和Express.js搭建后端服务器,处理数据请求和业务逻辑。 为了确保代码质量和可维护性,项目中可能包含了测试用例,使用Jest或Mocha等JavaScript测试框架进行单元...

    AndroidTechTeamIml:安卓技术小组hexo原始码

    Hexo是一个快速、简洁且高效的静态站点生成器,广泛用于个人博客和团队技术分享平台的搭建。通过分析这个项目的源代码,我们可以深入理解如何在Android技术社区中运用Hexo来创建和管理内容。 1. **Hexo框架介绍**:...

    作业提交批改系统.zip

    此外,考虑到是小组合作的成果,这个系统可能采用了版本控制工具,如Git,来协同开发和管理代码。团队成员可以各自独立工作,然后通过提交和合并代码来整合每个人的努力。同时,为了确保项目的可维护性和可扩展性,...

    基于springboot校友社交系统.zip

    【描述】这个校友社交系统的核心在于SpringBoot,它是一个由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。SpringBoot通过自动配置和起步依赖,使得开发者能够快速地构建独立运行的、生产...

    上机考试题

    ### IT知识点解析:“紫光华宇上机考试”——基于Struts、Spring、Hibernate的小组活动管理系统 #### 核心知识点一:系统架构与技术栈 - **Struts框架**:用于构建MVC架构的Java Web应用,负责处理HTTP请求,控制...

    毕业设计&课设--网上求职招聘管理系统-毕业设计.zip

    2. **后端技术**:Java、Python或Node.js常用于构建服务器端,Spring Boot、Django或Express.js等框架可以帮助快速搭建和管理应用。 3. **数据库管理**:MySQL、PostgreSQL或MongoDB等数据库用于存储用户信息、职位...

    静态网站案例,软件开发课程设计

    此外,你们还可能使用了预处理器如Sass或Less来简化CSS的编写,以及使用框架如Bootstrap或Foundation来快速搭建页面布局。 课程设计的实践性很强,你们通过这个项目不仅掌握了静态网站开发的基本技能,还学会了项目...

    CVS文档

    CVS作为经典的版本控制工具,虽已被Git等现代工具所取代,但在理解软件开发历史和版本控制原理方面仍具有重要价值。掌握CVS的核心操作和管理策略,对于软件工程师而言,是深入理解版本控制机制不可或缺的一课。

    运营版本uniapp定制二开聊天APP社区APP红包IM软件即时通讯源码.txt

    - **兴趣小组**:根据不同的主题或兴趣爱好建立小组,方便用户找到志同道合的朋友。 - **社交网络**:构建用户间的社交关系网,通过关注、点赞、评论等功能增强社区粘性。 #### 红包功能的设计与实现 红包功能是...

    小团队管理工具选择:不需要大而全1

    GitLab相当于克隆的GitHub软件,如果想搭建一个内部的git仓库,推荐使用GitLab。 Tower是一个很用心的产品,小团队应该试一试,主要功能并不多——主题讨论、任务列表、文档、日历,但是用起来非常顺手,有很多超出...

Global site tag (gtag.js) - Google Analytics