坑1: 在个人上传公钥的时候,提示生成指纹失败,没有什么能够阻挡俺们运维的脚步,gitlab web端是基于 On Rails的,也是个MVC典型框架, 看他这么像是一个flash效果 根据这点蛛丝马迹找处理方法去 log: Started POST /profile/keys for 127.0.0.1 at 2013-
坑1:
在个人上传公钥的时候,提示生成指纹失败,没有什么能够阻挡俺们运维的脚步,gitlab web端是基于 On Rails的,也是个MVC典型框架,
看他这么像是一个flash效果
根据这点蛛丝马迹找处理方法去
log:
Started POST “/profile/keys” for 127.0.0.1 at 2013-11-15 12:37:36 +0800 Processing by Profiles::KeysController#create as HTML Parameters: {“utf8″=>”?”, “authenticity_token”=>”a3SQrp7gXosUavont2fQajVYLHQh0C1NXVQEVGNYTEM=”, “key”=>{“title”=>”pcoffice”, “key”=>”ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEA75YFeVv2T0MxPlEcqYz2ajueinVwB/tbvgC1t5mFngkegPKbMyXU7zI5eqnZYDqLGcaf7rL7BwvkFjY++fvQCm7ohwHZi9ZEcU0xGH1izUvPLlHHGYsJG1FgBSYzHZvNw4KL5fo8STuC3JN96rtLkbhKtpOuc9AZ8o7tpAqpr6E= rsa-key-20131115″}} Rendered profiles/keys/_form.html.haml (4.8ms) Rendered profiles/keys/new.html.haml within layouts/profile (5.8ms) Rendered layouts/_head.html.haml (2.4ms) Rendered layouts/_search.html.haml (16.5ms) Rendered layouts/_head_panel.html.haml (22.8ms) Rendered layouts/_flash.html.haml (0.2ms) Rendered layouts/nav/_profile.html.haml (3.2ms) Completed 200 OK in 91ms (Views: 35.1ms | ActiveRecord: 3.1ms) |
在app/model/key.rb模型类里找处理:
validates :fingerprint, uniqueness: true, presence: { message: ‘cannot be generated.. because of uniqueness!’ }
是这个validates触发了flash提示,
生成指纹的方法:
这个模型中有一个生成的方法,在校验的时候就会生成不了指纹,打印
?def generate_fingerpint self.fingerprint = nil return unless key.present? cmd_status = 0 |
/tmp/gitlab_key_file20131115-26416-4buuyk is not a public key file.
结果最后!!
是因为selinux开着,需要setenforce=0即可。。。
因为selinux开着的话,中间的?popen(“ssh-keygen -lf #{file.path}”, 这个ssh-keygen -lf #{file.path}? 过程在服务器上怎么测试都不对,而服务器自身生成的默认的id_rsa.pub是可以打印出指纹的,后来发现,在selinux开着的情况下,路径只能是 ~.ssh/下的才能进行校验,关闭之后就可以根据其他路径的公钥来生成指纹了
原文地址:GITLAB Fingerprint cannot be generated, 感谢原作者分享。