您的位置:首页 > 其它

小组级git服务器的搭建

2013-12-09 15:48 169 查看


1、公钥的生成

任何一个需要使用git服务器的工程师都需要生成一个ssh的公钥。可以通过ssh-keygen来生成

[align=left]~/.ssh$ ssh-keygen[/align]

[align=left]Generating public/private rsa key pair.[/align]

[align=left]Enter file in which to save the key (/home/shizhen/.ssh/id_rsa):[/align]

[align=left]Enter passphrase (empty for no passphrase):[/align]

[align=left]Enter same passphrase again:[/align]

[align=left]Your identification has been saved in /home/shizhen/.ssh/id_rsa.[/align]

[align=left]Your public key has been saved in /home/shizhen/.ssh/id_rsa.pub.[/align]

[align=left]The key fingerprint is:[/align]

[align=left]a8:19:49:f4:e6:e8:4f:8f:3e:47:c9:19:4c:09:ee:7f shizhen@sz-desktop[/align]

[align=left]The key's randomart image is:[/align]

首先会让你输入要保存公钥的位置,直接回车即可,接着会提示让你重复一个密码两次,如果不想再使用公钥的时候输入密码,直接回车即可。完成后会在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 使用同樣的方法會出現錯誤訊息
Agent admitted failure to sign using the key

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

即各自的开发者执行命令

ssh-add id_rsa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git服务器搭建