sudo adduser git
mkdir gitrepo git init --bare project.git
mkdir .ssh
ssh-keygen sudo scp id_rsa.pub git@192.168.174.147:~/z_id_rsa.pub
cat z_id_rsa.pub >> ~/.ssh/authorized_keys
现在就可以在客户机上操作远程仓库了!
git clone git@192.168.174.147:~/gitrepo/project.git localProject
注1:用户公钥复制到服务器后可以通过shell访问服务器,有时很危险,怎么禁止用户通过shell访问呢?
将服务器上的/etc/passwd文件修改一下:
将
git:x:1002:1002:,,,:/home/git:/bin/bash
改为:
git:x:1002:1002:,,,:/home/git:/usr/bin/git-shell
这样用户在他的电脑上用shell来访问服务器时就会是这样:
ssh git@192.168.174.147 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Oct 28 19:20:43 2015 from 192.168.174.146 fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. Connection to 192.168.174.147 closed.
注2:上面的 git init --bare project.git 是创建了一个空仓库,是没有工作区的,只是为了共享。
--End--
原文:http://www.cnblogs.com/ibgo/p/4916638.html