Files
gerrit/SSH推送完整指南.md
2025-12-22 17:12:39 +08:00

111 lines
3.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.
# SSH 推送完整指南
## ✅ 您的 SSH 公钥
您的 SSH 公钥格式正确:
```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDfjHZN+QcoRiE6yzSTi15/6iwa7sHQ6D0hlnnGFmzBiEhix+oPhpLM18SM6qKiTSC3KEIsAtjRMndWFOO/PnSsDtLWnBDxg8HWn1YhjDCz5VaCmMEA/Com8FGQPtSliI+6F+v1OOeaviL7V0iJcvZVPuIUrruNTfsZWOHrFhBrEeNwtrxwXcB3N5Hzw1/2c3AZ//5vPUf63FU0GNnNO8K2dTIJqfe80kprJtWXHGaj2OsV1T065LL24GYe65Hfngo8jf9HL1O1+ZUfNWrgJXKnr6U4cPOwpmuxcVa85OlXpxYOxcXWU20fu/ZgxzcvFYnONfnj2pI10j5ix1M2Vf1Ken5GP0WEHJUYUQ4bILbf1jKZRWqLgh0/nyAPikpcaYboqy3R4ZZjl+dC1JCXCzkmT69AiPzrvBWjlz2ygUwr45xoq7YJqLLjtFYJXf2KTgWczpJyDtWb4gXPJV1GAgaSHOrsswa3vlIQT3aOr0hmK7rKNXEcoySm1QV4GHcalfAybKvz9O9eXWxOlAY1JSzLA6fy8ziB3n+8wyIe44Pomro79m5w4R+C0XbrJ4owEzfnAAe1AcaIgQ4ik78idug0ZFQZ4s1YNYS/oQfDS8ZP5TanAC611ouO3XG1SUn6SkkKzG8ThQDr+igXFnShUrgYXKjLxifAj4wfl/wmg2NhXQ== your_email@example.com
```
## 步骤 1确保公钥已添加到 Gerrit
1. **打开浏览器**,访问:`http://101.43.95.130:8080/#/settings/ssh-keys`
2. **检查**您的公钥是否已经在列表中
3. **如果没有**,请添加:
- 在 "New SSH key" 输入框中粘贴上面的完整公钥
- 点击 "Add" 保存
## 步骤 2修复防火墙服务器端
SSH 连接超时通常是防火墙问题。如果您有服务器管理员权限,执行:
```bash
# 在服务器上执行
sudo firewall-cmd --permanent --add-port=29418/tcp
sudo firewall-cmd --reload
# 验证
sudo firewall-cmd --list-ports | grep 29418
```
**如果是云服务器**,还需要在云控制台的安全组中开放 29418 端口。
## 步骤 3测试 SSH 连接
在您的本地电脑上执行:
```bash
# 测试 SSH 连接
ssh -p 29418 renjianbo@101.43.95.130 gerrit version
```
如果连接成功,会显示 Gerrit 版本信息。
## 步骤 4使用 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 remote -v
# 推送代码
git push origin HEAD:refs/for/master
```
## 如果 SSH 连接还是超时
### 检查云服务器安全组
如果是云服务器(如阿里云、腾讯云等),需要在云控制台配置:
1. **登录云控制台**
2. **找到安全组配置**
3. **添加入站规则**
- 协议TCP
- 端口29418
-0.0.0.0/0或您的 IP
4. **保存规则**
### 临时使用 HTTP如果 SSH 无法修复)
如果 SSH 暂时无法修复,可以尝试 HTTP我已经添加了 `gitBasicAuth = true`
```bash
cd /d/ttt/test-project
# 清除凭证
git credential reject <<EOF
protocol=http
host=101.43.95.130
port=8080
EOF
# 使用 HTTP 推送
git remote set-url origin http://renjianbo@101.43.95.130:8080/test-project
git push origin HEAD:refs/for/master
```
## 推荐方案
**强烈推荐使用 SSH**,因为:
- ✅ 更安全
- ✅ 更可靠
- ✅ 不受 HTTP 认证限制
主要问题是防火墙,修复后就可以正常使用。
## 下一步
1.**确保公钥已添加到 Gerrit**
2.**修复防火墙**(服务器端)
3.**测试 SSH 连接**
4.**使用 SSH 推送代码**