无法通过新 GitLab 容器上的 ssh 密钥进行身份验证

时间:2021-01-29 09:10:55

标签: ssh gitlab ssh-keys

我最近设置了一个新的 GitLab docker 容器,尽管其他一切都运行良好,但我无法通过 ssh 对其进行身份验证。

我按照说明 here 操作,但没有成功。 无论我生成什么密钥类型,无论客户端(Linux、Windows git-bash)如何,服务器都会立即拒绝公钥并且不提示输入密码。

调试显示如下:

debug1: Offering public key: /c/Users/[user]/.ssh/id_ed25519 ED25519   SHA256:[SHA-256]
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51

也许这很明显,但我无法完全弄清楚,也没有任何故障排除步骤能够提供帮助。 作为旁注,ssh 端口是非标准的,尽管我是通过新端口访问的。我还仔细检查了服务器和客户端上都启用了 ssh。

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先检查这是否类似于gitlab-org/gitlab-foss issue 18371“docker omnibus gitlab denying ssh public key”

<块引用>

就我而言,问题是 docker 容器暴露的 ssh 套接字与我的服务器的套接字不匹配。
它有助于将它暴露在不同的端口上,例如 10022 并像这样重新配置 gitlab:

gitlab_rails['gitlab_shell_ssh_port'] = 10022

理想情况下,您需要停止,重新启动 ssh 守护进程(服务器端,容器端,如 in this thread

usr/sbin/sshd -d

这将允许您检查:

  • 如果收到 SSH 请求
  • 如果它因任何原因被阻止