目录
一、在服务器上创建一个新用户
二、创建一个Git仓库
三、在服务器端打开RSA认证
四、在客户端创建SSH key
五、把步骤四生成的公钥导入服务器
六、在客户端clone远程git仓库
七、禁止用户git通过shell进行登录
八、结束语 - 初始化master分支
一、在服务器上创建一个新用户
1.添加git用户
adduser git
2.更改密码(参数是用户名,会让你输入新密码和确认新密码,长度8位以上)
passwd git
二、创建一个Git仓库
1.创建文件夹
mkdir /data/git
2.进入文件夹
cd /data/git
注:如果没安装Git服务,执行 yum -y install git
git init --bare demo.git
4.将demo.git的所有权从root修改到新创用户的git
chown -R git:git demo.git
三、在服务器端打开RSA认证
1.在文件 /etc/ssh/sshd_config 中去掉下面三代码前方#注释,如果没找到某一段请添加进去:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2.进入刚刚创建的git用户目录下
cd /home/git
3.创建存放公钥的文件夹
mkdir .ssh
4.创建用户存放客户端公钥的文件,【注:创建后自动进入空文件,:wq退出】
vim authorized_keys
四、在客户端创建SSH key
ssh-keygen -t rsa -C "你的邮箱"
该命令会在用户主目录的.ssh文件夹下生成两个文件:用于保存私钥的 id_rsa 和用于保存公钥的 id_rsa.pub
五、把步骤四生成的公钥导入服务器
将生成的 id_rsa.pub 中的内容拷贝到服务器文件 /home/git/.ssh/authorized_keys中,就是第三步第四点创建的文件
六、在客户端clone远程git仓库
git clone git@193.112.131.155:/data/git/demo.git
其中193.112.131.155是你自己的服务器端的IP地址
(由于进行了步骤4和步骤5的设置,所以在clone仓储的时候就无需再输入密码了)
【注:克隆如果出现以下错误,删除客户端 known_hosts 文件中的最后一行】
七、禁止用户git通过shell进行登录
因为搭建git服务器后通常会建立一个git账户,其它人共用这个账户来克隆或推送数据到git仓库中,通常也只需要这个功能,但是如果不加限制,那么其它人可以通过这个git账户使用指令 ssh git@193.112.131.155 登录到主机,那么这样是不安全的,所以需要加以限制,即令git用户不允许登录shell,可以编辑 /etc/passwd 文件,找到类似下面的一行:
将
git:x:1000:1000::/home/git:/bin/bash
改成 (后面加个git-shell即可,别复制我这段!!!)
git:x:1000:1000::/home/git:/usr/bin/bash/git-shell
八、结束语 - 初始化master分支
在进行了一个commit操作后,master分支就会出现,此时执行git push就可以将本地的修改推送到远程的master分支了.
至此远程git服务器搭建完毕!
【注】如果出错或疑问欢迎指出,如果您有更好的方法欢迎一起交流学习