例如,为了达到多个用户直接运行git clone/pull/push命令同步git代码库。
git clone git@192.168.0.100:~/simple.git
- 软件安装
服务器端创建git用户
su root
adduser git
mkdir ~/.ssh
ssh-keygen -t dsa -f ~/.ssh/id_dsa
服务器git用户添加设置客户认证
su git
cd .ssh
touch authorized_keys2
chmod 600 authorized_keys2
以上操作与git没有半毛钱关系。
初始化git代码库
mkdir ~/simple.git
cd ~/simple.git
git init --bare --shared
新的git库名字叫simple。
为了防止授权用户登录服务器做其他事情,所以我们要禁止用户登录shell。这个跟git也没太大关系。。。。。。。
su root
usermod git --shell /usr/bin/git-shell
客户端设置
客户可以使任何系统只要有支持ssh的工具即可。客户端只要提供公钥即可,公钥与客户的用户名系统无关,不需要用户名和服务器用户名一样。
只要把生成的客户公钥告诉服务器即可。
生成公钥
ssh-keygen -f ~/.ssh/id_rsa
把刚生成的~/.ssh/id_rsa.pub文件发给出即可。
发送客户端公钥给服务器管理员
管理员添加用户公钥后客户端可以执行下面的命令。ssh -l git 192.168.0.100
只要不提示输入密码,直接显示欢迎信息就ok了。
参数中git是服务器上的用户名,跟客户端用户名无关。
git服务器管理员添加用户公钥
服务器管理员只要把收到的公钥,添加到git用户的 authorized_keys2文件即可。catuser.pub>>~/.ssh/authorized_keys2
http://blog.sina.com.cn/s/blog_71f83a920100znoh.html