创建git用户

执行:adduser git,根据提示设置密码。

赋予git用户sudo权限
执行:

1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

找到以下内容:

1
2
3
# User privilege specification
root ALL=(ALL:ALL) ALL
git ALL=(ALL:ALL) ALL

root ALL=(ALL:ALL) ALL这一行下面添加git ALL=(ALL:ALL) ALL

保存退出后,修改回文件权限chmod 440 /etc/sudoers

关闭git用户shell权限
执行:vim /etc/passwd
将最后一行的git:x:1001:1001:,,,:/home/git:/bin/bash修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

1
getent passwd git

需要将目录修改为 /path/to/your/project

git:x:1001:1001:,,,:/path/to/your/project:/usr/bin/git-shell

“安装”你的公钥(把你本地 id.pub 的内容贴进去):

1
2
install -d -m 700 -o git -g git /home/git/.ssh
nano /home/git/.ssh/authorized_keys

把你本地 id.pub 整行粘贴进去(不要换行断开),保存退出。

  1. 修正权限(非常关键,权限不对 sshd 会直接忽略):
1
2
3
4
5
6
7
chown -R git:git /home/git/.ssh
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys

# 确保家目录不被组/其他写(否则也会被拒绝)

chmod go-w /home/git

再次尝试连接,连接OK

在 VPS 上已经有一个“现成目录/文件”的情况下,把它变成一个 Git 项目仓库,按下面做即可。

1)把现有目录初始化为 Git 仓库

1
2
cd /path/to/your/project
git init

2)设置忽略文件(推荐)

根据项目类型创建 .gitignore,例如:

1
nano .gitignore

常见示例(按需删改):

1
2
3
4
5
node_modules/
vendor/
.env
.DS_Store
*.log

3)把现有文件加入版本库并提交

1
2
git add .
git commit -m "Initial commit"

如果提示需要配置用户名邮箱:

1
2
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

4)可选:关联远程仓库(GitHub/GitLab 等)

先在远程创建一个空仓库(不要勾选初始化 README/License,避免冲突),拿到地址后执行:

1
2
git remote add origin <REMOTE_URL>
# 例如:git remote add origin git@github.com:xxx/yyy.git

然后推送:

1
2
git branch -M main
git push -u origin main

如果你的目的是“在 VPS 上做一个可供别人 push/pull 的裸仓库”(可选)

这种一般用于在服务器上作为远端仓库(不直接在里面开发)。

1
2
3
4
# 例如在 /srv/git 下放裸仓库
mkdir -p /srv/git
cd /srv/git
git init --bare yourproject.git

然后在你项目目录(工作区)里把它当 remote:

1
2
3
cd /path/to/your/project
git remote add origin /srv/git/yourproject.git
git push -u origin main

本地开始

1
2
3
npm install hexo-cli -g
npm install
hexo s