我一直在努力让 gitolite 工作。我使用了包方法,并且能够与第一个用户对服务器进行第一次“git push”。之后,如果我添加一个键并尝试再次推送某些内容,我会收到一条错误消息,提示“gitolite-admin 的 W 访问权限拒绝迈克” - 请注意,它应该使用 gitolite 用户 - 而不是我的用户名。我想这是因为我在我的 .bash_profile 中为两个用户添加了私钥。(我正在使用 msysgit)...
有任何想法吗?
非常感谢!
我想这是因为我正在为两个用户添加私钥
确实,您应该为用户使用专用的公钥/私钥,该密钥gitolite
也用于 ssh 访问。
您可以通过查看 gitolite 日志来确认(在~gitolite/.gitolite/logs
)
使用多个密钥是通过一个config
文件完成的。
参见示例“用户在使用 gitolite 时被要求输入密码”。
该%HOME%/.ssh/config
文件可能包含以下内容:
HostName gitoliteserver
User gitolite
IdentityFile ~/.ssh/gitolite
Host mikegitolite
HostName gitoliteserver
User mike
IdentityFile ~/.ssh/id_rsa
不要忘记定义HOME
您是否在 Windows 上:默认情况下未定义)
OP Mike Gagnon在评论中确认以下配置正在运行:
host gitolite
user gitolite
hostname myhost
port 443
IdentityFile ~/.ssh/gitolite
host edison
user gitolite
hostname myhost
port 443
IdentityFile ~/.ssh/mike
我遇到了类似的问题,因为我只能推送到一个新的 gitolite 存储库,然后我就失去了访问权限。我可以通过在第一次推送时将我的用户名添加到 .conf 文件来解决此问题:
%> cat conf/gitolite.conf repo gitolite-admin RW+ = git-admin myusername