Files
gerrit/最终解决方案.md
2025-12-22 17:12:39 +08:00

96 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gerrit HTTP 推送认证问题 - 最终解决方案
## 问题根源
`DEVELOPMENT_BECOME_ANY_ACCOUNT` 模式默认不支持 HTTP Basic 认证进行 Git 操作。我已经在服务器端添加了 `gitBasicAuth = true` 配置。
## 解决方案
### 步骤 1等待服务器重启完成
服务器正在重启,请等待 10-15 秒。
### 步骤 2重新尝试推送
在您的本地电脑上执行:
```bash
cd /d/ttt/test-project
# 确保远程 URL 包含用户名
git remote set-url origin http://renjianbo@101.43.95.130:8080/test-project
# 清除已保存的凭证(如果有)
git credential reject <<EOF
protocol=http
host=101.43.95.130
port=8080
EOF
# 重新推送
git push origin HEAD:refs/for/master
```
当提示输入密码时,直接按回车(留空)。
### 步骤 3如果还是不行使用 SSH推荐
由于 HTTP 认证在开发模式下可能有限制,强烈建议使用 SSH
#### 1. 确保 SSH 公钥已添加到 Gerrit
访问:`http://101.43.95.130:8080/#/settings/ssh-keys`
确保您的公钥已添加。
#### 2. 修复防火墙(服务器端)
如果您有服务器管理员权限,执行:
```bash
sudo firewall-cmd --permanent --add-port=29418/tcp
sudo firewall-cmd --reload
```
如果是云服务器,还需要在云控制台的安全组中开放 29418 端口。
#### 3. 使用 SSH 推送
```bash
cd /d/ttt/test-project
# 删除 HTTP 远程仓库
git remote remove origin
# 添加 SSH 远程仓库
git remote add origin ssh://renjianbo@101.43.95.130:29418/test-project
# 推送
git push origin HEAD:refs/for/master
```
## 当前服务器配置
```ini
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
gitBasicAuth = true
```
`gitBasicAuth = true` 应该允许 HTTP Basic 认证用于 Git 操作。
## 推荐方案
**强烈推荐使用 SSH 方式**,因为:
- ✅ 更安全
- ✅ 更可靠
- ✅ 不受 HTTP 认证限制
如果 SSH 连接有问题,主要是防火墙问题,修复后就可以正常使用。
## 下一步
1. **等待服务器重启完成**(约 10-15 秒)
2. **重新尝试 HTTP 推送**
3. **如果还是不行,修复防火墙后使用 SSH**