3

我们正在尝试为代码审查设置一个 Gerrit 实例,并计划在 in 中使用“repo”。我可以直接推送到 Gerrit,但使用repo upload失败并出现公钥错误:

user@machine:~/workspace/git/gerrit-test$ repo upload
Upload project path/gerrit_test/ to remote branch master:
branch master ( 1 commit, Fri Aug 3 15:23:50 2012 -0700):
     8ef17a1b this better effin work
to gerrit.test.com:8081 (y/N)? y
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

----------------------------------------------------------------------
[FAILED] path/gerrit_test/ master          (Upload failed)

我已将问题缩小到用于此 repo 的用户名,但不知道在哪里设置此用户名(我也不知道如何检查正在使用的用户名)。我尝试在.repo/manifests.git/config中添加以下内容,但仍然失败。

[review "gerrit.test.com:8081"]
        username = <my_username_from_gerrit_profile_page>

在哪里添加正确的用户名?

谢谢。

4

3 回答 3

8

确保您在配置文件中有您的用户名。

$ git config --global review.<"URL">.username $USER
于 2013-06-18T14:23:05.107 回答
2

默认情况下,gerrit ssh 服务器在端口 29418 上启动。您似乎正在连接到端口 8081,我怀疑这是 Web 服务器端口号。

如需确认,请检查“etc/gerrit.config”文件的以下部分:

[sshd]
    listenAddress = *:29418
[httpd]
    listenUrl = http://*:8081/

您还可以通过运行以下命令检查您的私钥凭据:

$ ssh -p 29418 your_user_id@localhost

  ****    Welcome to Gerrit Code Review    ****

  Hi mark, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://your_user_id@your_machine:29418/REPOSITORY_NAME.git

Connection to localhost closed.

我认为您能够“直接推送到 Gerrit”的原因是 ssh 端口号是存储库 URL 的一部分。

于 2012-08-05T16:41:07.893 回答
2

repo 工具使用您的电子邮件前缀作为 review.URL.username

例如,

用户名:john_chen

电子邮件:John_Chen@gmail.com

John_Chen将是 review.URL.username。

因此,您必须检查您是否有能力通过 John_Chen 进行连接

你可以通过repo --trace upload来追踪它

于 2014-08-30T03:11:28.507 回答