我正在尝试设置 Gitlab 服务器。添加 ssh 密钥时,出现错误“无法生成指纹”。我在 Google 上搜索解决方案,发现了一些可能导致此问题的问题。
首先是确保 SELinux 能够正确访问。由于我没有安装 SElinux,所以这不会有问题。
第二步是确保ssh-keygen
已安装并且生成的密钥没有与之关联的密码短语。检查过,没有问题。
第三是检查用户是否git
可以访问tmp
Gitlab 创建的目录。我也检查了这一点。
这是链接我按照来设置gitlab。
答案1
问题在于,根据这些说明安装的 Gitlab 版本(版本 6.9.2)太旧了(当前版本为 8.14)——ssh-keygen
当时输出的是基于 MD5 的指纹哈希;现在默认为 SHA256。解决方案来自 -修复gitlab“无法生成指纹”错误- 如下:
- 编辑
<path-to-gitlab>/app/models/key.rb
- 更改此行
cmd_output, cmd_status = popen(%W(ssh-keygen -lf #{file.path}), '/tmp')
- 有了这个
cmd_output, cmd_status = popen(%W(ssh-keygen -E md5 -lf #{file.path}), '/tmp')
- 重启 Gitlab