我按照here的说明设置了一个gitosis服务器。它适用于初始用户,但我最近添加了一个新用户。以下是我采取的步骤。
ssh-keygen
创建了一个rsa密钥对。git commit -a -m "what i did"
之后我尝试使用新密钥文件签出。它要求密码短语,当我正确输入密码时,它会询问用户git的密码! 用户git没有密码。
现在我已经在sshd_config中关闭了PasswordAuthentication,现在它说'Permission denied(publickey)。我检查了git用户的authorized_keys文件,其中只有一个密钥被授权,即gitosis admin的初始密钥。
我还仔细检查了./gitosis-admin.git/hooks/post-update挂钩的权限,它有755
答案 0 :(得分:6)
Gitosis有点愚蠢 - 用于密钥文件的文件名字面意思是“johndoe”?如果是这样,请更改:
git mv keydir/johndoe keydir/johndoe.pub
git commit -m "changed key name"
git push
再试一次。
另外,正如Arlen Cuss指出的那样,确保 是公钥,而不是私钥。
答案 1 :(得分:5)
嗨,我有同样的问题,我终于找到了出路。
我必须遵循许多网站提供的指示,但每次都在
之后git clone git@[serveur_name]:gitosis-admin.git
这是要求GIT的密码。
分辨率:
我在我的authorized_keys
文件(位于服务器的/home/git/.ssh/
目录中)中插入了管理公钥(在我的客户端用户上创建的;然后导入到服务器的tmp目录中)它现在有效。
cp authorized_keys authorized_keys.bak
cat /tmp/id_dsa_git.pub >> authorized_keys
我发现了这个@ http://fclose.com/b/linux/366/set-up-git-server-through-ssh-connection/
答案 2 :(得分:1)
确保您将公钥放入您的gitosis回购中,而不是您的私人回复!
当您生成密钥文件时,您将获得一个.pub
文件,但是在没有gitosis.conf
的情况下将该名称放在.pub
中。
答案 3 :(得分:1)
确保您还添加了(git add).pub文件,并将其正确提交并推送到存储库。
答案 4 :(得分:0)
我最近遇到了一个私有存储库工作的问题。我遇到了这个答案并阅读了答案; this和this成功了。
总结一下后代,请务必将 .pub
键添加到gitosis-admin/keydir
目录中。它必须是 .pub 文件。
承诺&将更改推送到 gitosis-admin 。
您的~/.ssh/authorized_keys
将自动更新,因此无需将公钥文件的输出重定向到它。
希望这有帮助
答案 5 :(得分:0)
虽然大多数文件都是正确的,因为它是自动创建的,但是他们错过了文件被命名为“id_rsa”,或者它不会被msysgit使用。 我没有找到告诉msysgit使用其他键的方法
答案 6 :(得分:0)
最有可能发生的事情是更新后的挂钩无法正常运行。
检查~git / .ssh / authorized_keys是否包含您的公钥。
如果没有,则更新后挂钩未运行。随后被更改的权限?其他一些配置错误。从其他地方复制了吗?
在服务器上,结帐gitosis admin:git clone /path/to/gitosis-admin.git。对gitosis.conf做一个微不足道的改变。检查您的公钥是否在keydir中。我必须以git用户身份运行它。
提交gitosis.conf。 git add gitosis.conf&& git commit -m“刷新密钥”。
现在检查authorized_keys文件。
更改gitosis.conf并再次提交。
测试访问权限。如果在此过程后未更新authorized_keys,请在日志中查找错误消息。