自建git服务器
个人博客—防止重复造轮子
Github
环境
1.Centos 7
2.git 1.8.3.1
正文
1.在服务器上安装git服务
yum install git
2.创建git用户,并切换到git用户
useradd git
passwd git
#设置密码
#确认密码
su git
3.初始化服务器端git仓库
cd /home/git
git init --bare test.git #创建test仓库
4.以上3步都是服务器操作,创建完成,然后在本地电脑上clone仓库,和使用github相同
#假设服务器ip为 1.2.3.4
git clone git@1.2.3.4:test.git
#输入密码
以上4步就可以完成在服务器上创建git仓库并在本地使用
但是!但是!但是!
你会用的很不爽
因为每次都要输入密码
所以再耐心的看下面的步骤吧
在本地生成公钥文件
ssh-keygen
#生成完毕后
cd ~/.ssh
#假设服务器ip为 1.2.3.4
scp id_rsa.pub git@1.2.3.4:~/.ssh/1.pub
回到git服务器端
mkdir /home/git/.ssh
chmod 700 .ssh
cd /home/git/.ssh
ssh-keygen -t rsa
touch authorized_keys
chmod 600 authorized_keys
#将本地传过来的公钥写入authorized_keys
cat 1.pub >> authorized_keys
完成上面两步之后,git clone
就不需要密码啦!
但是!但是!但是!
不管用!还是提示要输入密码
查看原因
#在本地ssh链接git服务器 假设ip 1.2.3.4
ssh -vvT git@1.2.3.4
返回如下debug
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/ouhaohan/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/ouhaohan/.ssh/id_dsa
debug1: Trying private key: /Users/ouhaohan/.ssh/id_ecdsa
debug1: Trying private key: /Users/ouhaohan/.ssh/id_ed25519
debug2: we did not send a packet, disable method
解决
# 权限问题
# git服务器
su
cd /home/git
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys