【问题标题】:GitLab SSH authentication succeeds, then connection closesGitLab SSH 身份验证成功,然后连接关闭
【发布时间】:2025-11-29 07:15:01
【问题描述】:

我在自托管 GitLab 实例上向我的用户帐户添加了一个 ecdsa-sha2-nistp256 SSH 公钥。在 GitHub 等其他服务上使用相同的公钥没有问题。

当我尝试通过 SSH (git clone git@gitlab.local:user/project.git) 克隆任何 repo 时,包括我自己绝对拥有的 repo,我可以看到服务器接受了公钥:

debug1: Offering public key: ecdsa-sha2-nistp256 ECDSA SHA256:LL8b...Onco agent
debug1: Server accepts key: ecdsa-sha2-nistp256 ECDSA SHA256:LL8b...Onco agent

但是连接立即终止并且克隆被中止。

我已确认服务器上启用了 ECDSA 密钥,并且我正在连接到正确的服务器。从我的个人资料中删除公钥会导致另一个错误,所以我知道 (a) 服务器的 authorized_keys 设置正在运行,并且 (b) 没有其他用户没有我正在登录的 repo 权限.

【问题讨论】:

  • 您应该查看 gitlab 服务器日志文件。并显示失败的 ssh 详细输出

标签: ssh gitlab


【解决方案1】:

问题似乎是 /etc/pam.d/sshd 已被修改为阻止身份验证。

我们在文件顶部添加了以下内容:

# local user 'git' needs to be allowed
account sufficient pam_localuser.so

【讨论】:

    【解决方案2】:

    如果 GitLab 日志没有显示任何其他线索,我将以调试模式在服务器上启动 ssh 守护进程:sshd -d

    这将触发一次性交互式会话,您可以在其中查看您的客户端是否 SSH 查询:

    • 到达服务器
    • 触发任何错误消息。

    【讨论】:

      最近更新 更多