first commit

This commit is contained in:
rjb
2025-12-22 17:12:39 +08:00
commit 1e007fa3f7
107 changed files with 15447 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
# SSH 公钥认证问题排查
## 问题现象
```
renjianbo@101.43.95.130: Permission denied (publickey).
fatal: Could not read from remote repository.
```
## 好消息
**SSH 连接已建立**(不再是连接超时),说明防火墙已修复!
**公钥认证失败**,需要检查公钥配置。
## 可能的原因
1. **公钥没有正确添加到 Gerrit**
2. **公钥格式问题**
3. **用户名不匹配**
4. **SSH 密钥路径问题**
## 解决方案
### 步骤 1确认公钥已添加到 Gerrit
1. **打开浏览器**,访问:`http://101.43.95.130:8080/#/settings/ssh-keys`
2. **检查**您的公钥是否在列表中,状态为 "Valid"
3. **如果没有**,请添加您的完整公钥:
```
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
```
### 步骤 2检查 SSH 密钥路径
在您的本地电脑上执行:
```bash
# 检查 SSH 密钥是否存在
ls -la ~/.ssh/id_rsa*
# 如果密钥文件不存在,重新生成
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
### 步骤 3使用 SSH 代理(如果密钥有密码)
如果您的 SSH 密钥设置了密码,需要启动 SSH 代理:
```bash
# 启动 SSH 代理
eval $(ssh-agent -s)
# 添加密钥
ssh-add ~/.ssh/id_rsa
```
### 步骤 4使用详细模式测试连接
```bash
# 使用详细模式查看具体错误
ssh -v -p 29418 renjianbo@101.43.95.130 gerrit version
```
查看输出中的错误信息,特别是:
- 是否尝试使用正确的密钥文件
- 服务器是否接受密钥
### 步骤 5检查用户名
确保 Gerrit 中的用户名是 `renjianbo`。可以访问:
`http://101.43.95.130:8080/#/settings/profile`
查看您的 Username。
### 步骤 6尝试使用 Account ID
如果用户名有问题,可以尝试使用 Account ID
```bash
# 查看您的 Account ID在 Settings → Profile 页面)
# 假设是 1000001使用
ssh -p 29418 1000001@101.43.95.130 gerrit version
```
## 快速检查清单
- [ ] 公钥已添加到 Gerrit`http://101.43.95.130:8080/#/settings/ssh-keys`
- [ ] 公钥状态显示为 "Valid"
- [ ] SSH 密钥文件存在(`~/.ssh/id_rsa`
- [ ] 用户名正确(`renjianbo`
- [ ] 防火墙已开放 29418 端口(✅ 已完成)
## 如果还是不行
请提供:
1. `ssh -v -p 29418 renjianbo@101.43.95.130 gerrit version` 的完整输出
2. Gerrit SSH Keys 页面的截图
3. 您的 Gerrit UsernameSettings → Profile