当前位置: 首页 > news >正文

搭建私人对外git空间

# 创建用户,指定不可登录的 Shell(git-shell 或 /usr/sbin/nologin)
sudo adduser --system --shell /usr/bin/git-shell --group git

# 验证用户配置
grep git /etc/passwd
# 预期输出:git:x:998:998::/home/git:/usr/bin/git-shell   //一定要是git-shell,不要xx-shell,这个是安装git后生成的git-shell bin,和用户没有关系。

# 删除用户
sudo deluser test

# 创建仓库目录(例如:test.git)
sudo -u test mkdir -p /home/test/test.git
cd /home/test/repos/test.git

# 初始化裸仓库(无工作区)

sudo -u test  git init --bare

# 修复权限(确保 git 用户拥有所有权)
sudo -u test chown -R test:test  /home/test

禁用密码登录(增强安全性)
sudo nano /etc/ssh/sshd_config

所有用户的配制

PasswordAuthentication no   //禁用密码登录
PubkeyAuthentication yes     //使用pubkey密钥登录

Match User root    //单独配制root用户,也可能配制其他用户test等等,空格分开或者另外再写一个配制(Match User xxx)
    PasswordAuthentication yes   # 允许 密码登录
    PubkeyAuthentication no        # 禁用密钥认证

PasswordAuthentication (系统登录密码,不是ssh密码)
设置成no,就是禁用操作系统密码登录,不是ssh设置的密码,
设置成yes   就要输入系统登录密码,如果没有设置密码将无法进入系统

PubkeyAuthentication     (是ssh密码,不是系统密码)
设置成no,ssh连接时不需要验证
设置成yes   ssh连接需要验证密码,如果把本地的id_rsa.pub,添加到服务器.ssh/authorized_keys中也不要输入ssh密码

两都都为yes就没法能过shell和ssh进入,前都为系统用户级密码,后者是ssh密钥密码

# 添加ssh密钥实现免密git pull
sudo -u test mkdir -p /home/test/.ssh
sudo -u test touch /home/test/.ssh/authorized_keys

sudo -u test chmod 700 /home/test/.ssh
sudo -u test chmod 644 /home/test/.ssh/authorized_keys

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --list   //查看设置是不是成功

生成ssh密钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" [-f ~/.ssh/your_custom_name] -f这个是可选

本地id_rsa.pub添加到服务器.ssh/authorized_keys中
 

----------------------------------------------------测试ssh 有没有通debug抓日志
# 服务器抓日志
sudo tail -f /var/log/auth.log  # 实时监控认证日志(Debian/Ubuntu)

本地抓日志
# 使用详细日志测试连接
ssh -Tv test@ip  
 


http://www.mrgr.cn/news/96505.html

相关文章:

  • QListView开发入门
  • 【学Rust写CAD】20 平铺模式结构体(spread.rs)
  • “屏幕“的实现_程序中如何将数据映射到硬件_C++实战
  • 项目代码第10讲【数据库运维知识——如何优化数据库查询效率?】:各种日志查看;主从复制;分库分表(MyCat);读写分离;区别数据分区、分表、分库
  • 【数据结构】队列
  • Kubernetes》》K8S》》Deployment 、Pod、Rs 、部署 nginx
  • unity客户端面试高频2(自用)
  • 【小兔鲜】day01 项目、Vue3介绍、组合式API、小案例
  • (undone) MIT6.824 Lecture 02 - RPC and Threads
  • Windows10上部署DeepSeek+RAG知识库操作详解(Dify方式)之1
  • 漏洞挖掘---顺景ERP-GetFile任意文件读取漏洞
  • C++学习之Linux文件编译、调试及库制作
  • 红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)
  • C++学习之路:指针基础
  • Windows11系统下python虚拟环境管理独家心得
  • uniapp选择文件使用formData格式提交数据
  • opencv图像处理之指纹验证
  • Java EE(18)——网络原理——应用层HTTP协议
  • leetcode 28 Find the Index of the First Occurrence in a String
  • Jmeter的压测使用