现象
公司是自建的gitlab的服务器,部署项目是集成到了自研的运维管理平台。之前拉取都是没有问题的,有一次另外的同事说,现在部署项目无法成功。
排错过程
根据报错信息排查,发现是 git clone git@xxx:xx.git 报错。之前是可以的,突然不行了,gitlab 上面也可以查看到公钥。
报错信息忘记保存了。额…
提供下自己的想法,gitlab 服务是没有人动过的。
首先,手动添加了 服务器的公钥到 gitlab 的 ssh keys,界面显示添加成功。发现依然无法git clone 成功。
根据报错信息搜了波,发现查出来的文章和我的不太一样。
然后,想着那可能是公钥没有保存到 gitlab 服务的 .ssh 文件夹中。
按照这个思路,查看 /var/opt/gitlab/.ssh/authorized_keys
,发现之前的 公钥不见了,奇怪!!!
解决办法
按照 gitlab 安装目录中,.ssh/authorized_keys
中的格式,(注意,这里的格式要根据自己的服务更改)。添加服务器的公钥进入就可以正常使用。
比如:
command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-10",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa + 自己的公钥
command="/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell key-10",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfda