我有与Gitolite服务器安装到主机我的回购昨天我创建了一个新的回购协议,今天,当我试图推动更多的承诺我收到服务器:
fatal: object 86eeaa0c5a154ff3df34d6a43669930b9c6c7f59 is corrupted
error: unpack failed: unpack-objects abnormal exit
error: failed to push some refs to
由于回购是很新的我是不是太费心失去先前的承诺,所以我已经删除了我的两个本地和远程的回购协议,但仍然得到同样的错误。
正如我说我不是太在意我的维修器材提交历史,我只想得到它的工作!
正如在评论中看到,任何额外的回购其创作过程中有一些问题(即推回时gitolite-admin
回购与gitolite.conf
文件中声明一个新的回购)
我以前没有注意到这一点,但我创造,我发现了以下错误一个新的回购协议:
remote: line 1 too long: command="/home/git/gitolite/src/gitolite...
remote: FATAL: fingerprinting failed for /tmp/Cdug9Itivq
但它创造了回购/home/git/repositories
此操作发生在编译后触发所谓ssh-authkeys
:
sub fp_file {
return $selinux++ if $selinux; # return a unique "fingerprint" to prevent noise
my $f = shift;
my $fp = `ssh-keygen -l -f '$f'`;
chomp($fp);
_die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/;
$fp = $1;
return $fp;
}
这意味着ssh-keygen -l -f <path_to_public_key.pub>
不遵循正确的模式,如图中的“ 自我服务密钥管理 ”。
确保您的密钥等产生:
ssh-keygen -t rsa -f "${H}/.ssh/git" -C "Gitolite Admin access (not interactive)" -q -P ""
更新2015年4月:
如前所述通过starfry在“ Gitolite -远程:FATAL:指纹识别失败'keydir /' ”:
有一个变化在6.8版本中的OpenSSH密钥指纹格式:
添加FingerprintHash
选项ssh(1)
和sshd(8)
和等效的命令行标志的其他工具来控制用于密钥指纹算法。 从MD5的默认更改为SHA256和格式从十六进制为base64。
指纹现在有散列算法前缀。
新格式的例子:
SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE
请注意,可视主机键也将有所不同。
该gitolite的最新git的结帐是知道的,因为3月18日'15,这种新的格式。