• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

Ubuntu搭建Git服务器 

经常写代码,还是需要一个git服务器方便管理。由于购买的阿里云服务器只是单核1G低配而已,所以就先搭个简单的git server来用用。

 用户的配置

生成证书:

$ssh-keygen -t rsa -C "your_email@example.com"

服务器上的配置

安装git,并添加用户git:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

$sudo apt-get install git
$sudo adduser git
# 修改git用户权限,保证安全性
$sudo vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

创建证书登录:

添加用户的公钥,也就是每个用户的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

 初始化git仓库:

$sudo mkdir -p /git/test.git
$sudo cd /git/test.git
$sudo git init --bare
$sudo cd ../
$sudo chmod -R git:git test.git

GitWeb:

$sudo ln -s /usr/share/gitweb/ /var/www/gitweb
$sudo ln -s /usr/share/gitweb/gitweb.cgi /usr/share/gitweb/index.cgi

修改gitweb的页面样式:https://github.com/kogakure/gitweb-theme,同时在系统上安装highlight包,使得代码能够显示得更加美观。

nginx的配置:

# gitweb
server {
    root /var/www/gitweb;
    index index.html index.htm index.cgi;
    server_name git.xxx.com;
    auth_basic 'Gitweb Server!';
    auth_basic_user_file /home/git/gitweb;
    location / {
        try_files $uri $uri/ /index.cgi;
    }
    location ~ \.cgi$ {
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.cgi;
        include fastcgi_params;
    }
}

其他问题解决:

1、git pull出错,提示:

Agent admitted failure to sign using the key.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

解决:在服务器上运行ssh-add;

2、遇到git操作错误时,可以尝试添加 -vT 参数来查看调试信息;

 

参考:

http://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%8D%8F%E8%AE%AE

https://help.github.com/articles/generating-ssh-keys

 

码字很辛苦,转载请注明来自ChenJiehua《Ubuntu搭建Git服务器》

评论