在主机上建立一个 git
账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git
账户的~/.ssh/authorized_keys
文件。这样一来,所有人都将通过 git
账户访问主机。这丝毫不会影响提交的数据 — 访问主机用的身份不会影响提交对象的提交者信息。
Step 1:服务器端创建用户(git)
# sudo addusergit
Step 2:客户端生成公钥,并
Ø 创建公钥:ssh-keygen,
Ø 在客户端的用户目录下查看生成的公钥和私钥对
#cd ~/.ssh
#ls
id_dsa id_dsa.pub
公钥所在的目录:windows在”C:/User/username/.ssh”目录下,linux在”~/.ssh”,~代表用户目录
step 3:服务器git用户下添加各个用户公钥,并配置ssh服务
将各个用户的公钥文件追加在服务器git用户的authorized_keys
文件中
$ cat id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat id_rsa.jessica.pub >> ~/.ssh/authorized_keys
修改.ssh和authorized_keys的权限)
.
忘记下面的话,会每次输入密码,(ps,被这个坑了好久)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Step 4,在git用户下创建git库
cd gitDIR
mkdir project.git
cd project.git
git init –bare
step 5,客户端使用
Ø 提交自己的库
mkdir project
cd project
git init
vi first.txt
git remote add origin gitserver/gitDIR/project.git
git push origin master
Ø 克隆:git clonegit@gitserver/gitDIR/project.git
Step 6,限制开发者登陆
默认情况下,能够连接git服务器用户也可以通过ssh直接登陆服务器,那么服务器将会存在被多用户登入的风险,限制的方法是:
Vi /etc/passwd
git:x:1000:1000::/home/git:/bin/sh |
该行修改后的样子如下:
git:x:1000:1000::/home/git:/bin/git-shell