# SSH 连接问题排查 ## 问题现象 ``` ssh: connect to host 101.43.95.130 port 29418: Connection timed out ``` ## 可能的原因 1. **防火墙阻止了 29418 端口** 2. **Gerrit SSH 服务未正常启动** 3. **网络路由问题** ## 解决方案 ### 步骤 1:先添加 SSH 公钥到 Gerrit 即使 SSH 连接暂时有问题,也可以先添加公钥: 1. **在浏览器中**,访问:`http://101.43.95.130:8080/#/settings/ssh-keys` 2. **在 "New SSH key" 输入框中**,粘贴您的公钥: ``` 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 ``` 3. **点击 "Add"** 按钮保存 ### 步骤 2:检查服务器端 SSH 服务 在服务器上检查: ```bash # 检查 Gerrit SSH 服务状态 cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh status # 检查端口是否监听 netstat -tlnp | grep 29418 # 或 ss -tlnp | grep 29418 ``` ### 步骤 3:检查防火墙 如果是云服务器,需要确保防火墙开放了 29418 端口: ```bash # CentOS 7 sudo firewall-cmd --permanent --add-port=29418/tcp sudo firewall-cmd --reload # 或者检查防火墙状态 sudo firewall-cmd --list-ports ``` ### 步骤 4:临时使用 HTTP 推送(如果 SSH 无法修复) 如果 SSH 连接问题暂时无法解决,可以继续使用 HTTP 方式: ```bash cd /d/ttt/test-project # 确保远程 URL 包含用户名 git remote set-url origin http://renjianbo@101.43.95.130:8080/test-project # 推送代码 git push origin HEAD:refs/for/master ``` ## 当前建议 1. **先添加 SSH 公钥**到 Gerrit(即使连接有问题,公钥可以先保存) 2. **检查服务器防火墙**是否开放了 29418 端口 3. **如果 SSH 暂时无法修复**,继续使用 HTTP 方式推送代码 ## 需要服务器端操作 如果您有服务器访问权限,请执行: ```bash # 检查防火墙 sudo firewall-cmd --list-ports # 如果 29418 不在列表中,添加它 sudo firewall-cmd --permanent --add-port=29418/tcp sudo firewall-cmd --reload # 检查 Gerrit SSH 服务 cd /home/renjianbo/gerrit_install/review_site bin/gerrit.sh status ```