5

I'm trying to setup Gitlab server. It flashes an error "Fingerprint cannot be generated" while adding ssh keys. I googled for the solutions and found a few possible problems that could cause this problem.

First was to ensure proper access from SELinux. Since I don't have SElinux installed, it can't be a problem.

Second was to make sure that ssh-keygen is installed and the keys generated do not have a pass phrase associated to it. Checked it and no issues.

Third was to check that user git can access the tmp directory created by Gitlab. I checked that too.

This is the link I followed to set gitlab.

5
  • The permissions of /tmp should be 1777. All users can write there. Are you sure you have diagnosed your problem correctly? The git user needs access to a tmp directory inside the Gitlab source dir structure afaik & that may have to be adjusted, but not /tmp ?
    – Zanna
    Sep 25, 2016 at 6:40
  • @Zanna I didn't know that. Anyway, I just checked for tmp inside Gitlab, made it accessible and it's still the same. Any other possible reason?
    – 7_R3X
    Sep 25, 2016 at 8:01
  • I don't know, but what makes you think it's a perms issue? Could you edit your question with a link to the instructions you're following or add more detailed error messages?
    – Zanna
    Sep 25, 2016 at 8:03
  • @Zanna : Just changed the question. I'm not sure where to find the logs as I'm new to it.
    – 7_R3X
    Sep 25, 2016 at 8:38
  • 1
    +1 to your question & hope someone can answer it.
    – Zanna
    Sep 25, 2016 at 8:48

1 Answer 1

6

The problem is that the version of Gitlab installed from those instructions (version 6.9.2) is too old (current version is 8.14) - ssh-keygen was then outputting MD5 based Fingerprint hashes; the default is now SHA256. The solution, as garnered from - Fixing gitlab's "Fingerprint cannot be generated" error - is as follows:

  • Edit <path-to-gitlab>/app/models/key.rb
  • Change this line

cmd_output, cmd_status = popen(%W(ssh-keygen -lf #{file.path}), '/tmp')

  • With this one

cmd_output, cmd_status = popen(%W(ssh-keygen -E md5 -lf #{file.path}), '/tmp')

  • Restart Gitlab

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.