您的位置:首页 > 运维架构 > Linux

Linux 安装Git Server

2015-08-07 11:00 603 查看
搭建Git服务器需要准备一台运行Linux的机器, 我用的Centos

2创建一个
git
用户,用来运行
git
服务:

sudo adduser git


3
用git用户登录,创建ssh key 文件夹

$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys


3 将本地的ssh pub key 上传到git server上, 比如 /tmp路径下,本地ssh pub key 在 .ssh/id_rsa.pub

scp .ssh/id_rsa.pub root@gitserver:/tmp/


4 追加id_rsa.pub 到服务器authorized_keys 里 (git用户下)

cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys


5 创建Git仓库

cd /opt
mkdir git
初始化仓库
sudo git init --bare sample.git
将git仓库owner改为git用户
sudo chown -R git:git sample.git


6 本地克隆仓库

git clone git@gitserver:/opt/git/sample.git


7 然后就可以利用source tree 等工具提交代码了。

8 如果服务器ssh端口号不是默认的22,比如是8765,如果用git协议clone,则需要修改本地~/.ssh/config 文件

host $xxx
hostname $xxx
port 8765
(替换$xxx 为ip地址或者域名)
如果用ssh协议clone,则 ssh://$xxx:8675/opt/git/sample.git

如果报错:


ssh
hostname returns “Bad owner or permissions on ~/.ssh/config”

那么 
chmod 600 ~/.ssh/config


9 作为一个额外的防范措施,你可以用 Git 自带的 
git-shell
 工具限制 
git
 用户的活动范围。只要把它设为 
git
 用户登入的
shell,那么该用户就无法使用普通的 bash 或者 csh 什么的 shell 程序。编辑
/etc/passwd
 文件:

$ sudo vim /etc/passwd


在文件末尾,你应该能找到类似这样的行:
git:x:1000:1000::/home/git:/bin/sh


把 
bin/sh
 改为 
/usr/bin/git-shell
 (或者用 
which
git-shell
 查看它的实际安装路径)。该行修改后的样子如下:
git:x:1000:1000::/home/git:/usr/bin/git-shell


现在 
git
 用户只能用
SSH 连接来推送和获取 Git 仓库,而不能直接使用主机 shell。尝试普通 SSH 登录的话,会看到下面这样的拒绝信息:
$ ssh git@gitserver
fatal: What do you think I am? A shell?
Connection to gitserver closed.


推荐阅读:

https://git-scm.com/book/it/v2/Git-on-the-Server-Setting-Up-the-Server

 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Git