我在CentOS 5.9服务器上安装gitolite.我已经创建了git用户,然后在su-git之后我设法将我的公钥放到了〜/ .ssh /目录中,我已经成功地从
github克隆了gitolite repo并运行了gitolite / install -ln.下一步是运行gitolite设置.
git@hostname [~]# gitolite setup -pk $HOME/.ssh/micha.pub Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/ Initialized empty Git repository in /home/git/repositories/testing.git/ FATAL: fingerprinting Failed for '/tmp/Q3pnE4WVbu'
谷歌搜索和SO搜索没有帮助我解决这个致命错误,我现在陷入困境.
我应该在运行安装程序之前自定义gitolite.conf文件吗?我一直在按照http://gitolite.com/gitolite/progit.html的说明进行操作,因为它们比普通的gitolite文档更容易让我理解.但是,这些说明没有提到自定义.conf文件.
更新:
我试过生成一个新密钥但它仍然失败:
git@hostname [~]# ssh-keygen -t rsa -C "Gitolite Admin Access (not interactive)" -P "" Generating public/private rsa key pair. Enter file in which to save the key (/home/git/.ssh/id_rsa): /home/git/.ssh/micha /home/git/.ssh/micha already exists. Overwrite (y/n)? y Your identification has been saved in /home/git/.ssh/micha. Your public key has been saved in /home/git/.ssh/micha.pub. The key fingerprint is: 33:b6:62:8b:b9:58:07:7a:71:6a:02:a5:ff:7e:c3:3a Gitolite Admin Access (not interactive) git@hostname [~]# gitolite setup -pk $HOME/.ssh/micha.pub Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/ Initialized empty Git repository in /home/git/repositories/testing.git/ FATAL: fingerprinting Failed for '/tmp/pUKqewb66w'
我也尝试用完整的路径替换$HOME,以防万一感到困惑.我的ssh安装有问题吗?不知道我将如何使用ssh连接到此服务器.
更新:
事实证明,gitolite保留了我曾尝试设置的公钥,以前已经失败了.然后我删除了所有的repos,gitolite源目录,〜/ bin中的符号链接和.gitolite目录,并再次启动了安装过程.我从github克隆了gitolite repo,删除了之前尝试使用的所有其他键后生成了一个新密钥.然后我运行了gitolite install -ln,最后
git@hostname [~]# gitolite setup -pk $HOME/admin.pub Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/ Initialized empty Git repository in /home/git/repositories/testing.git/ FATAL: fingerprinting Failed for '/tmp/tsIx4cKWHj'
仍然失败.
正如我
mentioned before,这意味着尚未正确生成ssh密钥.
尝试:
ssh-keygen -t rsa -f "${H}/.ssh/micha" -C "Gitolite Admin access (not interactive)" -q -P ""
OP mwotton reports从任何先前的ssh密钥清除〜/ .ssh是解决方案.
这是因为ssh-authkeys.fp_file()
函数名为with a find:
chomp( my @pubkeys = `find keydir/ -type f -name "*.pub" | sort` );
因此它可以获取已经在〜/ .ssh中的先前(可能已损坏)的键.