无法通过新 GitLab 容器上的 ssh 密钥进行身份验证
Posted
技术标签:
【中文标题】无法通过新 GitLab 容器上的 ssh 密钥进行身份验证【英文标题】:Can't authenticate via ssh key on new GitLab container 【发布时间】:2021-05-03 04:54:50 【问题描述】:我最近设置了一个新的 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】:先检查是否类似于gitlab-org/gitlab-foss
issue 18371"docker omnibus gitlab denied ssh public key"
在我的情况下,问题是 docker 容器公开的 ssh 套接字与我的服务器的套接字不匹配。 它有助于在
10022
等不同的端口上公开它,并像这样重新配置 gitlab:gitlab_rails['gitlab_shell_ssh_port'] = 10022
理想情况下,您需要停止并重新启动 ssh 守护程序(服务器端、容器端,如 in this thread 所示)
usr/sbin/sshd -d
这将允许您检查:
如果收到 SSH 请求 如果因任何原因被阻止【讨论】:
以上是关于无法通过新 GitLab 容器上的 ssh 密钥进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab - 无法通过 SSH 克隆,但 SSH 可以自己工作
GitLab Runner CI 管道内的 SSH 连接无法验证主机密钥