first commit
This commit is contained in:
110
SSH推送完整指南.md
Normal file
110
SSH推送完整指南.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# 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 推送代码**
|
||||
|
||||
Reference in New Issue
Block a user