2

我正在尝试使用 gitolite 设置 Redmine 并使用本指南http://nsaunders.wordpress.com/2012/04/24/redmine-gitolite-integration/

一切似乎都运行良好,存储库是通过 Redmine 创建的(我在 gitolite/repositories 下看到了存储库)。但是,当我尝试使用以下命令初始化存储库时,我不断收到相同的错误消息

mkdir nwi
cd nwi
git init
touch readme.txt
git add readme.txt
git commit -m 'Initializing T repository'
git remote add origin gitolite@localhost:nwi.git
git push -u origin master

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

用户的公钥在 gitolite 的 autohorized_keys 中。用户在我尝试提交的存储库的 gitolite.conf 中。我是 git 新手,尝试了一千种方法,但无法正常工作。有什么问题?

4

2 回答 2

1

这是一个 ssh 身份验证问题,而不是 git 问题。您通常会查看/var/log/secure或类似内容以了解 ssh 拒绝连接的原因。您要确保:

  • 公钥在authorized_keys文件中,
  • 此文件的格式正确(没有复制和粘贴错误等)
  • authorized_keys文件的权限为600( rw-------)
  • .ssh目录的权限为700( rwx------)
  • 一切归gitolite用户所有
于 2012-07-31T01:26:52.340 回答
1
  1. 生成您自己的密钥对。作为您自己的用户执行

    cd ~/.ssh
    ssh-keygen -t rsa 用户名
  2. 确保您的公钥 (username.pub) 已上传到 gitolite /keydir 文件夹中。由于您已将 redmine 与 gitolite 捆绑在一起,这可能意味着 redmine 正在管理这些公钥,您需要将它们上传到 Redmine,以便 Redmine 可以更新管理存储库。请注意,您不能手动添加密钥,您需要提交并通过管理存储库推送它们(在您的情况下,redmine 应该这样做)

  3. 在 gitolite 中注册您的公钥后,尝试在系统中注册您自己的密钥:

    执行 ssh 代理 bash
    ssh-add ~/.ssh/private-key-name

再次尝试连接

于 2012-08-04T16:50:24.723 回答