用户无法连接到 git(在 ubuntu 上使用 gitolite)

用户无法连接到 git(在 ubuntu 上使用 gitolite)

我能够运行以下命令:

git clone admin@ip address:gitolite-admin.git

当我尝试使用以下步骤添加新用户时,新用户无法连接:

迄今采取的措施

1.  Copied the public key into the keydir (also tried copying it in a separate directory within the keydir)
2.  I added a repo in the config file for the new userID
3.  git add -A
4.  git commit -m 'adding new user keys and repo'
5.  git push origin master

所有这些命令运行时都不会抛出任何错误。
当用户尝试登录时,他无法使用以下命令进行连接:

git clone username@IPAddress:newRepoName.git

连接超时,抱怨无法连接到端口 22。有任何建议可以帮助解决此问题吗(用户的公钥是从他的计算机生成的 - 同一个密钥用于以用户身份登录 - 不同的计算机用于管理员访问)。提前致谢

编辑:我删除了非管理员用户的公钥,运行提交并推送到服务器,然后为该用户添加了一个新的公钥,运行添加、提交并推送到服务器。管理员的回复提到用户已添加。但是,当用户尝试使用以下命令连接到服务器时,连接尝试失败(我可以从我的计算机克隆项目 - 其他用户不能,其他用户也不能,所以我猜我在配置其他用户时犯了一个错误 - 任何想法都非常受欢迎,感谢您的耐心)

git 克隆[电子邮件保护]:testProject 克隆到“testProject”...权限被拒绝(公钥)。致命:远程端意外挂断

答案1

这个地址永远都不能用:git clone username@IPAddress:newRepoName.git

使用 gitolite 时,你总是使用同一个帐户:

git clone git@IPAddress:newRepoName.git

(如果 git 是安装 gitolite 的帐户)

看 ”添加和删​​除用户“了解如何声明新用户:

即添加他/她的公钥命名文件中的用户 ID 之后gitolite.conf

然后用户必须拥有自己的密钥~/.ssh/id_rsa(.pub),并使用git@IPAddress:newRepoName.gitgit而不是username)执行任何 git 命令

答案2

问题出在用于连接托管 git 的 amazon aws 实例的客户端设置上。我接受了 VonC 的回复,因为他对我的所有问题都反应迅速。谢谢

  1. 我让用户通过 ssh 连接(使用 ssh 证书文件) - 用户接受了用于连接其计算机的密钥。
  2. 用户在其 ~./ssh 文件中添加了一个配置文件,格式如下:

    主机 test.git.com

    主机名 amazonHostName

    用户 adavid

    PreferredAuthentications 公钥

    身份文件 ~./ssh/adavid

用户也运行了 ssh-add 命令。但是,他们无法使用短名称连接到 git 存储库,因此必须使用长名称进行连接。

再次感谢 VonC!

答案3

对于遇到同样问题的用户,请检查服务器上是否已为 ssh 使用 AllowGroups。可能是服务器上的 git 用户不在正确的组中。

诊断:尝试通过 ssh 连接到服务器上的 git 用户,并查看 /var/log/auth.log 中出现的内容。如果它显示“不允许用户 git,因为任何用户的组均未在 AllowGroups 中列出”,您需要检查哪些组在 AllowGroups 中,然后将 git 用户添加到其中一个。

相关内容