可以使用whereis git等命令来检查是否已经安装了git版本的
有可以用git --version
使用这个命令看到的版本比较清楚。
想要卸载 git 可以使用 yum remove git
因为我原先已经安装了git所以现在需要先卸载一下,方便等下安装的过程中截图。然后顺便说一下卸载。
安装git
在CentOS中安装git其实也很简单只要用以下yum命令即可
yum install git
然后给git 创建一个用户也可以使用当前登陆的用户作为git用户,但是为了方便管理我们还是给git创建一个新用户。
创建git用户组:
groupadd git
创建git用户 :
useradd git -g git
如果没有任何输出表示创建成功
然后在/home/
目录下会自动创建一个 git 用户目录我们需要在git用户目录下创建.ssh
证书目录
先 cd 到git 用户目录
创建证书目录和公钥文件authorized_keys
服务器上使用 authorized_keys 文件来管理所有用户的 SSH 公钥。只有那些有公钥存放在这个文件下的用户才能正常使用这个git服务器否则每次推送或拉代码都需要输入一次用户名密码。
mkdir .ssh
chmod 744 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
还有一件事情需要提醒你的是.ssh文件和authorized_keys文件创建后同样需要更改用户和用户组。
要不然创建之后是root的用户(因为我现在是用root用户) 的文件只有root才有权限才能读取,造成公钥不能用。
chown git:git .ssh
chown git:git .ssh/authorized_keys
然后把用户的公钥都上传到服务器上在用以下命令追加到 authorized_keys 文件
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
还可以使用远程操作的方法,使用 ssh-copy-id
命令。我比较喜欢这种方法,因为比较省事。
现在假设你在本地已经安装好了git,然后点击鼠标选择 Git Bash Here
打开Git Bash Here后进入你的.ssh目录
输入以下命令
;xxx.xxx.xxx.xxx是你的ip地址或域名也可以
;git 是你的用户名
ssh-copy-id -i id_rsa.pub git@xxx.xxx.xxx.xxx
这是我创建.shh文件和证书后没有改创建用户和用户组后报的错
创建好后.ssh证书文件给的权限是744 。authorized_keys 是644。
authorized_keys 证书存放公钥规则是一次回车算一个。
例如:
初始化Git仓库
选择一个文件夹存放git仓库,或是创建一个文件夹。我这里在/var/www/html/gittest
目录下然后修改gittest的用户和用户组
mkdir /var/www/html/gittest
cd /var/www/html/gittest
chown git:git ../gittest/
初始化git仓库
git init --bare test.git
安全问题
用户禁止shell登录、允许git登录
为了安全要禁止git用户登录shell,可以通过修改配置文件/etc/passwd
。
打开 /etc/passwd
文件, 你将看到所有用户及其使用的 Shell, 会有很多行类似这样的内容, 每行是一个用户。
vim /etc/passwd
找到刚才创建的用户名git:
git:x:1001:1001::/home/git:/bin/bash
将其改成
git:x:1001:1001::/home/git:/bin/git-shell
需要提醒以下的是禁止shell登录后git用户就无法使用ssh-copy-id进行Key的登记了,但可以使用root或是别的shell用户,然后authorized_keys文件用chown
把用户和用户组改成git
注意:
就算你现在已经配置好了公钥现在还不能正常从远程把git库拉下来,还需要配置一下sshd否则会有提示需要输入密码。
配置sshd_config文件,并重启:
sshd_config位于/etc/ssh/ 目录,需要使用root权限
su root
然后输入密码如果当前就算root这步省略
vim sshd_config
找到以下三像
RSAAuthentication yes
#能设置是否使用RSA算法进行安全验证。
PubkeyAuthentication yes
#开启公匙认证
StricModes no
#ssh在接收登录请求之前是否检查用户根目录和rhosts文件的权限和所有权,建议yes
最基本的配置信息就是以上三个这里是我在网上找到的对ssh配置做了些整理的文章有兴趣可以去看看。
https://blog.csdn.net/qq624202120/article/details/60468705
克隆仓库
先cd 到你想要创建项目的地方然后输入:
git clone git@192.168.56.1:/var/www/html/gittest/test.git
就这样一个完整的git服务器就搭建好了