我能够运行以下命令:
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.git
(git
而不是username
)执行任何 git 命令
答案2
问题出在用于连接托管 git 的 amazon aws 实例的客户端设置上。我接受了 VonC 的回复,因为他对我的所有问题都反应迅速。谢谢
- 我让用户通过 ssh 连接(使用 ssh 证书文件) - 用户接受了用于连接其计算机的密钥。
用户在其 ~./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 用户添加到其中一个。