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