gitolite设置变为致命:'/ tmp/Q3pnE4WVbu'的指纹识别失败

mwo*_*ton 7 centos5 centos gitolite

我在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'
Run Code Online (Sandbox Code Playgroud)

谷歌搜索和SO搜索没有帮助我解决这个FATAL错误,我现在陷入困境.

我应该在运行安装程序之前自定义gitolite.conf文件吗?我一直在按照http://gitolite.com/gitolite/progit.html的说明进行操作,因为对于像我这样的noob来说,比起普通的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'
Run Code Online (Sandbox Code Playgroud)

我也尝试用$HOME完整的路径替换,以防万一su - git混淆了它.我的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'
Run Code Online (Sandbox Code Playgroud)

仍然失败.

Kin*_*xit 8

如果你从puttykeygen等采取pub键,它将是多行的标题

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "test@example.com"
startofkeylines
....
endofkey==
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)

删除---开始和结束行,以及注释:行.将所有关键行放在一行中.并使用ssh-rsa作为前缀,如下所示:

ssh-rsa startofkeylines....endofkey==
Run Code Online (Sandbox Code Playgroud)

这对我有用.

  • 另外,如果您在PuTTYgen中加载PPK文件或生成新密钥,则框中带有正确格式的公共密钥,其标题为:“用于粘贴到OpenSSHauthorized_keys文件中的公共密钥”。使用此功能可以消除在手动编辑公钥时损坏公钥的可能性。 (2认同)

Von*_*onC 1

正如我之前提到的,这意味着 ssh 密钥尚未正确生成。

尝试:

ssh-keygen -t rsa -f "${H}/.ssh/micha" -C "Gitolite Admin access (not interactive)" -q -P ""
Run Code Online (Sandbox Code Playgroud)

OP mwotton 报告从任何先前的 ssh 密钥中清除 ~/.ssh 是解决方案。
这是因为该ssh-authkeys.fp_file()函数是通过 find调用的:

chomp( my @pubkeys = `find keydir/ -type f -name "*.pub" | sort` );
Run Code Online (Sandbox Code Playgroud)

因此它可以获取以前(可能已损坏)的密钥~/.ssh