Linux上的 git 服务器

本文详细介绍如何在服务器上创建Git用户并设置密码,初始化裸仓库,配置SSH密钥认证以实现安全传输,以及解决过程中可能遇到的权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我是真滴无聊,废话不多说。。

一、 创建一个用户git并设置密码 , 这个账户是用来管理git的.(这里就不创建新组了)

$ adduser  git     # useradd git
$ passwd   git

二、首先在服务器上找个地方创建一个git仓库, 注意,服务器上的是裸仓库, 没有工作区的那种。而且服务器最好以 “.git” 结尾。
比如 /srv/gitserver.git

$ sudo git init –bare gitserver.git 

这里直接更改该库的用户.
这里写图片描述

还有一点: 只为git用户的ssh连接启用git-shell (表示不给这个用户的进入界面的权限,只给访问权限,你登录该用户后无法进入系统。我是这样理解的,如果有误还请大家指正。)
这里写图片描述

三、开启RSA认证
进入/etc/ssh 目录,编辑sshd_config,打开以下三个配置的注释。
这里写图片描述

<1>开启RSA认证
<2>开启公钥方式认证
<3>默认认证目录

重启sshd服务:
这里写图片描述

四、SSH 传输
(1)先在服务器上
创建目录: /home/git/.ssh/authorized_keys(在git用户的目录下,创建之前指定的默认目录)
同时设置权限, 防止后面编辑出问题.
这里写图片描述
(2)导入客户端公钥
生成公钥步骤:
1. 生成sshkey
这里写图片描述
2.查看公钥
这里写图片描述
3.将客户端公钥导入服务器

$ ssh git@server 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

这里写图片描述
4.测试
这里写图片描述
表示成功.然后可以添加点文件提交试试:
这里写图片描述

遇到的问题及处理办法:
1.编辑 ~/.ssh/authorized_keys 时无法保存退出, 提示 readonly(加 ! 强制退出 ):
是权限问题, 需要设置 .ssh 文件的权限为700, authorized_keys文件为600.
这里写图片描述
2.推送不成功.是权限问题:
这里写图片描述

解决
(1)查看权限:
这里写图片描述
(2)发现都是root的, git用户权限不够, 无法访问,修改owner为git用户:
这里写图片描述

附带一些vim的基本命令

vim:
i:  进入插入模式
ESC:  退出插入模式
:wq   保存修改并退出
:q!     强制退出, 放弃修改

有问题与见解欢迎提出来共同讨论。

end。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值