gitlab 服务迁移后无法通过ssh协议进行数据交互,如克隆代码

将gitlab 服务从A服务器完整的迁移到B服务器上了,在B服务器上能正常启动服务,浏览器端可以正常访问操作,但gitlab 的ssh 服务没生效,没办法通过ssh 协议克隆服务端代码,一直提示输入密码,看了/var/opt/gitlab/.ssh/authorized_keys 文件中公钥也在的,公钥也添加到浏览器端了,但是ssh -T验证的时候发现ssh 协议没通,服务器的22端口是通的,有没有知道哪里有遗漏?在迁移服务的时候遗漏了什么ssh 相关的文件同步么?

一般出现这种现象的情况有以下两种:

  • git over ssh请求的主机并没有真正指向 gitlab server,例如转发到了代理服务器
  • ~git/.ssh/authorized_keys文件更新有问题,可以尝试使用 “gitlab-rake gitlab: shell:setup” 重建(请忽略空格)
  • sshd_config关闭了验证公钥

从您的现象看,提示输入密码,也就是说 22 端口是可以连通的,authorized_keys 里面公钥也是在的,可以先尝试重建一下这个文件,然后排查一下其余两点

根据您的建议,后来看到是sshd_config 文件被修改了,处理后 ssh -T测试数据是通了,但是提示是welcome to Gitlab,Anonymous!
重新把服务器上的公钥添加到gitlab 页面上过,但还是没有识别用户关系,请问这个有什么方向可以排查么?

这种情况,您首先需要确认下~git/.ssh/authorized_keys 文件中是否已经保存了您新添加的公钥,如果公钥添加了,您仍不能通过 git ssh 进行验证,可以尝试做如下配置,直接通过数据库进行验证。
启用公钥快速搜索:Fast lookup of authorized SSH keys in the database | GitLab