参考文章
http://www.runoob.com/git/git-server.html
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
环境
服务器环境:
ubuntu 16.04
本地环境:
windows7
git 2.18.0
本地端
下载git
这个安装就没什么好说的了,一路点击下一步就好
创建密钥对
ssh-keygen
方便起见,配置时一直回车,按默认选项配置。
服务器端
安装git
apt install git
创建一个git用户组和用户
sudo adduser git
上传公钥到服务器
ssh-copy-id git@ip地址 # 这里我的ip是192.168.0.113
公钥将传至 /home/git/.ssh/authorized_keys 文件里面
禁用shell登录
出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。
vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
测试公钥是否上传成功,使用命令
ssh -T git@192.168.0.113
成功登陆了,然后因为刚才我们设置不允许git用户使用ssh,所以自动退出了
要是公钥没上传成功,会让你输入密码登录
初始化 Git 仓库
进入目录
cd /home/git
初始化一个空的git仓库
sudo git init --bare first.git
所属用户改为git
sudo chown -R git:git /home/git
克隆仓库
git clone git@192.168.0.113:/home/git/first.git
完成