直接安装
yum install git
创建git服务器专属的用户
useradd git
出于安全考虑,禁止git用户登陆shell,编辑/etc/passwd文件
vi /etc/passwd
在最后面找到:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
接着在git用户目录下创建.ssh目录和authorized_keys文件,用于存放需要克隆或远程推送的用户的公钥
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
创建git仓库,--bare 参数创建一个空的仓库,没有工作区,只会生成一类用于记录版本库历史记录的文件。
服务器上的Git仓库通常都以.git结尾
git init --bare sample.git
然后,把这个仓库的owner改为git
chown -R git:git sample.git
到这里服务器端的git就安装完成了。
客户端克隆git仓库,需要先在本地生成他们的公钥,然后把这些公钥保存到 /home/git/.ssh/authorized_keys
生成公钥的方法这里以Linux为例子,在客户端输入以下命令,然后一路回车
ssh-keygen
在你的用户目录下的.ssh/id_rsa.pub,打开复制里面的内容就是了。
然后就可以克隆了,server是你的ip地址,/sample.git 是你的仓库路径
git clone git@server:/sample.git
这是ssh的一种连接方式。
如果出现以下情况
ssh: connect to host server port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
检查一下你的ssh端口号是多少,由于安全原因一般会修改ssh的默认端口号。
然后运行以下命令,port就是你的端口号
git clone ssh://�git@server:port/sample.git
如果是提示需要密码,有可能是公钥没有保存到/home/git/.ssh/authorized_keys,或者用户权限问题。又或者可以试试重新生成公钥。