linux中git服务器搭配教程

例子一

先看疗效:
1. 无需公钥

2. 只需要几个最常用的Linux命令就可以搭建

 

看步骤
1. 准备Linux服务器, 安装好git(一般都是默认装好的)

2. 命令行操作

useradd git   #创建一个git账号

passwd git    #设置git账号的密码

su – git    #切换到git账号

cd ~  #转到用户目录

mkdir 项目名称.git   #建立项目git文件夹

cd 项目名称.git

git –-bare –share init   #初始化git库

 

3. 马上拿起你的git客户端( 乌龟, SourceTree均可)输入这样格式的地址git@ip:/path/to/project.git

例如: git@192.168.1.2:/home/git/YourProject.git

git pull时, 需要输入密码, 就输入上面创建好的git账号的密码就可以

开始使用吧!

 

Tips
这种方法搭建的git服务器仅限于小团队和对贡献代码不敏感的项目而生

git本身的公钥是为了防止别人伪造用户名进行虚假提交. 但这个方法绕开了这点

想开新的git库时, 切记使用git账号去重复以上步骤, 若使用root级别账号创建的文件夹使用客户端时会遇到权限不足的提示

例子2

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 remote add origin git@gitserver:/home/git/work/project.git (即:git@192.168.1.100:/home/git/work/project.git)
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 使用同?拥姆椒??霈F???息

Agent admitted failure to sign using the key

解?Q方式 使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa)
即各自的开发者执行命令
ssh-add id_rsa

时间: 2025-01-26 20:41:49

linux中git服务器搭配教程的相关文章

阿里云Linux下FTP服务器搭配配置

  阿里云服务器是国内目前 最好的一个云服务器了,不过价格方面也比较贵了,下面我们来给各位介绍在阿里云Linux下FTP服务器搭配配置了,大概方法 与linux下搭配ftp服务器区别不大,只是一些小细节了. 一.aliyun Linux(Redhat)安装vsftp软件 1.更新yum源 首先需要更新系统的yum源,便捷工具下载地址:update_source.zip.这里需要注意的是,目前文件无法传输,所以想要运行 update_source.sh 只能用文本打开,复制粘贴到阿里云服务器系统运

Linux中VPS 服务器安全设置教程

在开通了 Linux 系统的 VPS 或服务器后,我们有必要做一些基本的安全设置. 一.关闭 SSH 密码登陆 首先,你需要有自己的 SSH Key,如果你使用 Windows 系统,可以用 Putty 下的 PUTTYGEN.EXE 生成私匙和公匙. 第一步,运行 PUTTYGEN.EXE 一般,我们选择默认的 RSA 加密即可,默认的 1024 位加密足够用,如果要保险点,可以选择 2048 或 4096 位加密,如图红圈处: 第二步,点击 Generate ,然后鼠标随意在空白处移动 等进

linux搭建git服务器

git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器. 在linux上面搭建git服务器是一件非常轻松的事情,只需要按照以下几步就能完成.为了确保整个过程的顺利,最好新创建一个名为git的账号,再使用该账号进行配置 1.安装git 在linux系统中,git安装只需要简单命令就可以完成,只需要打开终端,输入 sudo apt-get update sudo apt-get i

项目实践中--Git服务器的搭建与使用指南(转)

  一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来看,git有以下功能: 1.从服务器上克隆数据库(包括代码和版本信息)到单机上. 2.在自己的机器上创建分支,修改代码. 3.在单机上自己创建的分支上提交代码. 4.在单机上合并分支. 5.新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并. 6.生成补丁(patch),

linux中Samba服务器的搭建理论篇

一.Samba与NFS.ftp   在了解Samba服务之前,需要先了解一下cifs协议(Common Internet File System),该协议最早是微软搞出来的一个协议.cifs 协议最早实现的是window主机之间的文件共享与打印共享,并不支持在linux上运行,samba是由Andrew Tridgell工程师通过逆向工程实现的一个cifs协议软件.通过该包可以实现windows和linux之间的文件共享.这和NFS的走的路刚好相反,NFS最初只支持在类unix系统上运行,后被w

linux中git命令行下ssh 密码连接的例子

git 命令行下,有的时候能完成图形界面无法完成的工作. 一,客户端配置 1,生成公钥和私钥  # cd ~/.ssh   # ssh-keygen -t rsa -b 4096   Generating public/private rsa key pair.   Enter file in which to save the key (/home/tank/.ssh/id_rsa): //自定义文件名,下面一路回车就行   2,添加配置文件  # vim ~/.ssh/config   Ho

Linux Apache Web 服务器终极教程_unix linux

APACHE系统介绍  根据著名的WWW服务器调查公司所作的调查世界上百分之五十以上的WWW服务器都在使用Apache是世界排名第一的WEB服务器.Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样诞生了Apache Group后来这个团体在NCSA的基础上创建了Apache.  Apache的主要特征是  . 可以运行上所有计算机平台  . 支持最新的

linux中dns服务器主从配置教程

bind版本:bind-9.9.5 主:192.169.1.100 从:192.169.1.101 tar zxvf bind-9.9.5.tar.gz cd bind-9.9.5 ./configure --prefix=/usr/local/named --enable-epoll --enable-threads --enable-ipv6 --disable-openssl-version-check --enable-backtrace --enable-symtable make &

Linux中samba服务器的基本配置

当安全等级为user时,这时我们在本机建立的用户必须加入到SMB服务器中,命令为 smbpasswd -a 用户 添加LINUX用户到SMB服务器中,smbpasswd 用户名 修改SMB服务器中用户的口令 #======================= Global Settings ===================================== 全局参数配置,设置的是针对所有的资源 [global] # workgroup = NT-Domain-Name or Workgro