我最近设置了一个新的 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。
任何帮助将不胜感激。
谢谢!
答案 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
这将允许您检查: