Ubuntu git server搭建指南
Ubuntu安装git
- apt-get update    更新apt-get
 
- apt-get install git自动安装git
 
- git –version 检测git安装成功
 
 
新建一个运行git的Linux用户
- adduser git 新建一个名为git的用户(设置密码)
 
改变git用户的shell登录行为
- vim /etc/passwd
 
将git用户记录如:
1
   | git:x:1001:1001:,,,:/home/git:/bin/bash
   | 
 
改成
1
   | git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
   | 
 
 
 
 
创建远端仓库
- cd /home/
 
- mkdir git
 
- cd git
 
- mkdir yourproject.git
 
- git init –bare –shared yourproject.git 初始化仓库
 
- 注意,一定要保证git用户对yourproject.git下所有文件有读写权限(建议递归修改目录owner: chown -R git yourproject.git)
 
 
本地安装git和tortoisegit
 
设置本地通用git用户name email(可在tortoisegit > settings直接设置)
 
本地产生SSH公钥与私钥
- 在git-bash中运行: ssh-keygen -C “{{user.email}}“ -t rsa(将{{user.email}}替换为上文中设置的git email)
 
- 一路enter后,windows系统在users\.ssh目录下可以看到生成的公钥id_rsa.pub与私钥id_rsa文件
 
 
将公钥复制到Ubuntu上
- 追加到/home/git/.ssh/authorized_keys文件尾部(第一次复制需要手动创建该文件)
 
- github用户可将公钥添加到github key设置页面
 
 
本地使用SSH私钥推拉远端仓库
- 运行PuTTYGen,在Conversions菜单中点击Import key,选择ssh-keygen生成的私钥文件所在位置,比如id_rsa文件
 
- 点击Save private key按钮,将其保存为.ppk文件
 
- 打开TortoiseGit > settings > git > remote,点击Add Key,选择前一步所保存的.ppk文件所在的位置即可
 
 
关于Linux /etc/passwd文件的说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
   | root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin libuuid:x:100:101::/var/lib/libuuid: syslog:x:101:104::/home/syslog:/bin/false messagebus:x:102:105::/var/run/dbus:/bin/false ntp:x:103:109::/home/ntp:/bin/false sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell mysql:x:105:113:MySQL Server,,,:/nonexistent:/bin/false ftp:x:106:114:ftp daemon,,,:/srv/ftp:/bin/false tomcat7:x:107:115::/usr/share/tomcat7:/bin/false redis:x:108:116:redis server,,,:/var/lib/redis:/bin/false
   | 
 
这个文件记录了linux中每个用户的基本属性,每个用户对应一行文本。每行文本又被冒号分隔为7部分,分别是:
- 用户名
 
- 密码:一般会加密保存在/etc/shadow文件中,此处只显示一个占位符*或者x
 
- 用户id
 
- 组id
 
- 用户描述
 
- 主目录
 
- 用户登录后执行的shell:如root用户通常是
/bin/bash来指定bash作为shell解释器,一些伪用户用/usr/sbin/nologin来禁用登录,上文中git用户使用/usr/bin/git-shell来指定git-shell为解释器