Files
gerrit/SSH公钥认证问题排查.md
2025-12-22 17:12:39 +08:00

3.1 KiB
Raw Blame History

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 密钥路径

在您的本地电脑上执行:

# 检查 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

快速检查清单

  • 公钥已添加到 Gerrithttp://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