记念(没错是纪念)一次搭建git服务器所踩的坑,起因是头一天晚上在家里试验弄的好好的,第二天到公司一直报错,事实证明,越不起眼的操作,越容易老司机翻车。
点击查看原文 一个要成为网红的程序员
搭建过程
安装
yum install -y git
git --version
创建git用户和组
一般用户名和组名使用 git
,并设置密码
groupadd git
adduser git -g git
passwd git
修改sshd_config,打开RSA认证
vi /etc/ssh/sshd_config
若没有该行则自行添加
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改配置要重启sshd服务
systemctl restart sshd
通过 AuthorizedKeysFile .ssh/authorized_keys
知道公钥的存放位置,本文在git
用户目录下的.ssh
文件夹
创建公钥存放文件
git
用户下其实是没有.ssh
文件夹的,需要自行创建
cd /home/git
mkdir .ssh
vi .ssh/authorized_keys
将客户端的公钥复制到authorized_keys
中进行授权验证,一行一个
用刚刚授权的客户端测试ssh链接是否成功
ssh -T git@yourIp
可以看到我们已经完成了授权功能,同时使用git
账号ssh
远程登陆到了我192.168.9.132
的主机
禁用git账号登陆服务器
由于添加了公钥,导致所有添加公钥的人都可以登陆服务器,这是不安全的,于是我们用git-shell
进行限制
vi /etc/passwd
将git:x:1000:1000::/home/git:/bin/bash
修改为 git:x:1000:1000::/home/git:/usr/bin/git-shell
再次用客户端进行测试,ok已被禁止
创建裸库
这个库的所有者必须是
git
用户!我的git
用户名是git
,参上。
首先创建裸库,我在根目录创建了一个叫gitServer.git
的文件夹,并初始化裸库,修改所有者为git
mkdir gitServer.git
git init --bare gitServer.git
chown -R git:git gitServer.git
客户端进行clone测试
回到刚刚的客户端,进行git操作
git clone git@192.168.9.132:/gitServer.git
ok,大功告成
sshkey生成
ssh公钥在你用户目录下的.ssh文件夹中的id_ras.pub中,如果没有需要自行生成,一路回车即可,不需要设置密码
ssh-keygen -t rsa -C "yourName@email"
windows用户生成sshkey
推荐新手使用git bash客户端,直接敲击命名即可。或者你也可以下载openssh,然后你就可以像我一样在cmd命令提示符中使用ssh服务了