在CentOS上搭建Git服务器
安装与配置Git
1、安装Git:
使用yum
命令在线安装Git,执行以下命令:
yum install -y git
验证Git是否安装成功,可以使用以下命令查看版本:
git --version
2、创建Git用户:
添加一个名为git
的用户,用于运行Git服务:
adduser git
为git
用户设置密码(建议设置强密码):
passwd git
3、初始化Git仓库:
创建一个裸仓库(没有工作区),例如在/data/git/learngit.git
目录下:
git init --bare /data/git/learngit.git
将仓库的所有者改为git
用户:
chown -R git:git /data/git/learngit.git
配置SSH访问
1、生成SSH Key:
检查用户主目录下是否存在.ssh
目录及id_rsa
和id_rsa.pub
文件:
ls -al ~/.ssh
如果没有这些文件,可以使用以下命令生成SSH密钥对:
ssh-keygen -t rsa -C "youremail@example.com"
按提示操作,一路回车使用默认值即可。
2、配置服务器:
切换到git
用户并进入其主目录:
su git cd ~/
创建.ssh
目录,并将公钥导入到authorized_keys
文件中:
mkdir -p .ssh echo "你的公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
3、禁用Shell登录:
编辑/etc/passwd
文件,找到git
用户的那一行,修改为:
git:x:1001:1001::/home/git:/usr/bin/git-shell
这样,git
用户可以通过SSH使用Git,但无法登录Shell。
客户端连接与测试
1、克隆远程仓库:
在客户端机器上,使用以下命令克隆远程仓库:
git clone git@服务器IP地址:/data/git/learngit.git
第一次连接时会有警告信息,输入yes
继续:
The authenticity of host '服务器IP地址 (服务器IP地址)' can't be established. RSA key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '服务器IP地址' (RSA) to the list of known hosts.
2、推送更改:
在本地仓库中进行修改并提交后,使用以下命令推送更改到远程仓库:
git push origin master
常见问题解答(FAQ)
1、如何更改Git用户的命令解释器?
编辑/etc/passwd
文件,找到git
用户的那一行,修改为:
git:x:1001:1001::/home/git:/usr/bin/git-shell
这样可以确保git
用户只能通过SSH使用Git,但无法登录Shell。
2、如何为多个项目配置不同的用户权限?
可以使用Gitolite或Gitosis等工具来管理多个项目的权限,这些工具可以精细控制每个用户对不同仓库的读写权限。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1259824.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复