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

3.1 KiB
Raw Permalink Blame History

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 连接超时通常是防火墙问题。如果您有服务器管理员权限,执行:

# 在服务器上执行
sudo firewall-cmd --permanent --add-port=29418/tcp
sudo firewall-cmd --reload

# 验证
sudo firewall-cmd --list-ports | grep 29418

如果是云服务器,还需要在云控制台的安全组中开放 29418 端口。

步骤 3测试 SSH 连接

在您的本地电脑上执行:

# 测试 SSH 连接
ssh -p 29418 renjianbo@101.43.95.130 gerrit version

如果连接成功,会显示 Gerrit 版本信息。

步骤 4使用 SSH 推送代码

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

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 推送代码