Gerrit设置Git仓库——权限被拒绝

5
我是gerrit的新手,正在尝试设置gerrit git项目。 我现在正在寻求帮助解决权限被拒绝的问题,非常感谢您的帮助。
我正在使用gerrit + http + mysql,我遇到了以下问题:
1. 当我检查我的数据库时,我无法在我的数据库中找到“system_config”中描述的“login_type”和“login_http_head”,详情请参考http://gerrit.googlecode.com/svn-history/r243/documentation/2.0/config-sso.html 2. 当我单击管理员->项目时,会提示“缺少项目all-projects”
3. 当我从数据库检查我的帐户时,有两个空用户(我认为这是因为我没有在UIweb页面上设置它们)
4. 我无法从UIweb页面注册新帐户,也无法使用命令行创建新用户。
以下是我的ssh密钥和注册步骤:
  1. 我使用了 ssh-keygen -t rsa -b 2048 (从互联网搜索,我不知道 2048 是什么意思)。

  2. 我使用 git config 配置了昵称和电子邮件,通过 UI 网页注册了 ssh-key

  3. 使用 ssh -p 29418 admin@localhost gerrit create-project --name example.git,我得到了提示:"Permission denied (publickkey)"。

  4. 在互联网上搜索后,我使用了 ssh -vv -p 29418 admin@localhost gerrit

我得到了以下输出:

gerrit2@bst-esa3-bs:~$ ssh -vv -p 29418 admin@localhost gerrit --help

OpenSSH_5.5p1 Debian-4ubuntu6, OpenSSL 0.9.8o 01 Jun 2010

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Applying options for *

debug2: ssh_connect: needpriv 0

debug1: Connecting to localhost [::1] port 29418.

debug1: Connection established.

debug2: key_type_from_name: unknown key type '-----BEGIN'

debug2: key_type_from_name: unknown key type '-----END'

debug1: identity file /home/gerrit2/.ssh/id_rsa type 1

debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048

debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048

debug1: identity file /home/gerrit2/.ssh/id_rsa-cert type -1

debug1: identity file /home/gerrit2/.ssh/id_dsa type -1

debug1: identity file /home/gerrit2/.ssh/id_dsa-cert type -1

debug1: Remote protocol version 2.0, remote software version GerritCodeReview_2.4.2 (SSHD-
CORE-0.5.1-R1095809)

debug1: no match: GerritCodeReview_2.4.2 (SSHD-CORE-0.5.1-R1095809)

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu6

debug2: fd 3 setting O_NONBLOCK

debug1: SSH2_MSG_KEXINIT sent

debug1: SSH2_MSG_KEXINIT received

debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-
exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

debug2: kex_parse_kexinit: ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-
rsa,ssh-dss

debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-
cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-
cbc@lysator.liu.se

debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-
cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-
cbc@lysator.liu.se

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-
ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-
ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96

debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib

debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit: first_kex_follows 0

debug2: kex_parse_kexinit: reserved 0

debug2: kex_parse_kexinit: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

debug2: kex_parse_kexinit: ssh-rsa,ssh-dss

debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,aes192-cbc,aes256-cbc

debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,aes192-cbc,aes256-cbc

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-md5-96,hmac-sha1-96

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-md5-96,hmac-sha1-96

debug2: kex_parse_kexinit: none

debug2: kex_parse_kexinit: none

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit: first_kex_follows 0

debug2: kex_parse_kexinit: reserved 0

debug2: mac_setup: found hmac-md5

debug1: kex: server->client aes128-cbc hmac-md5 none

debug2: mac_setup: found hmac-md5

debug1: kex: client->server aes128-cbc hmac-md5 none

debug2: dh_gen_key: priv key bits set: 138/256

debug2: bits set: 1040/2048

debug1: sending SSH2_MSG_KEXDH_INIT

debug1: expecting SSH2_MSG_KEXDH_REPLY

debug1: Host '[localhost]:29418' is known and matches the RSA host key.

debug1: Found key in /home/gerrit2/.ssh/known_hosts:1

debug2: bits set: 1018/2048

debug1: ssh_rsa_verify: signature correct

debug2: kex_derive_keys

debug2: set_newkeys: mode 1

debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS

debug2: set_newkeys: mode 0

debug1: SSH2_MSG_NEWKEYS received

debug1: Roaming not allowed by server

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth

debug1: SSH2_MSG_SERVICE_ACCEPT received

debug2: key: /home/gerrit2/.ssh/id_rsa (0x7f23f313aff0)

debug2: key: /home/gerrit2/.ssh/id_dsa ((nil))

debug1: Authentications that can continue: publickey

debug1: Next authentication method: publickey

debug1: Offering public key: /home/gerrit2/.ssh/id_rsa

debug2: we sent a publickey packet, wait for reply

debug1: Authentications that can continue: publickey

debug1: Trying private key: /home/gerrit2/.ssh/id_dsa

debug2: we did not send a packet, disable method

debug1: No more authentication methods to try.

Permission denied (publickey).

能不能把这些内容编辑成代码块呢?我想这样做,但需要得到批准并且大于8个非空白字符。 - Christopher
克里斯托弗,谢谢你的提醒。已完成:) - yunfei
2个回答

4

您是否通过Web界面将您的ssh密钥上传到Gerrit中?您确定您在Gerrit中的用户名是'admin'吗?


Brad,谢谢你。我已经将我的ssh密钥添加到了gerrit中,但是似乎出现了一些主机名问题,我不知道如何解决它。 - yunfei
在RSA密钥的gerrit webUI页面中,它显示类似于“gerrit2@bst-esa3-bs”的注释,“bst-esa3-bs”是我的服务器名称。但实际上我正在使用命令:“ssh-keygen -t rsa”。我猜问题在于主机名“bst-esa3-bs”,因为我无法使用http://bst-esa3-bs通过ie访问gerrit。 - yunfei
` gerrit2@bst-esa3-bs:~$ ssh -p 29418 10.173.178.101:81 gerrit create-account --ssh-key - watcherPermission denied (publickey).gerrit2@bst-esa3-bs:~$ ssh -p 29418 gerrit2@localhostPermission denied (publickey).gerrit2@bst-esa3-bs:~$ ssh -p 29418 gerrit2@bst-esa3-bsPermission denied (publickey). ` - yunfei
Brad,谢谢回复。我的用户名是admin,是通过命令“htpassword gerrit_site/etc/passwords admin”创建的,为什么我的用户名应该是gerrit2? - yunfei
1
Gerrit使用内部用户数据库,而不使用平台账户。通过查看用户界面中的设置,检查Gerrit所期望的用户名。 - Brad
显示剩余2条评论

1
在我看来,最大的问题在于ssh配置文件: ~/.ssh/config
在这里,您需要告诉SSH将您的用户ID与目标URL和端口对齐。
Host gerrit.domain.com
    User my_user_name
    Port 29418

我只需要每隔几年这样做一次,所以总是忘记在所有密钥设置完成后执行此最后一步,否则它仍然无法正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接