使用Ubuntu的服务器上Gitolite。 有一个项目IM工作,我需要对git的命令的特定语法。
伟大的作品:混帐克隆gitolite @服务器:testing.git
要求输入密码的git克隆SSH://gitolite@servername/home/gitolite/repositories/testing.git
从同一个盒子,一个又一个的跑。 我可以把密码和它的作品。 但我需要自动工作。 听起来像使用ssh酒吧/私钥问题。 有任何想法吗?
更新:与文件权限的问题。 不知道过命令之间的差异。 但/var/log/auth.log显示一些错误
你需要设置〜gitolite /的.ssh / authorized_keys文件如下一行
command="/home/gitolite/bin/gl-auth-command <USERNAME>",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA...KEY.HERE...ZZZZ== user@label
有关于这个信息的随机URL(见页面底部)
http://www.geekgumbo.com/2011/10/18/ssh-and-the-gitolite-installation-part-2/
确保更改〜gitolite /的.ssh / authorized_keys中的所有权按照SSH要求有:
chown gitolite: ~gitolite/.ssh/authorized_keys
chmod go-w ~gitolite/.ssh/authorized_keys
编辑:以反映您的编辑修改“混帐”到“gitolite”系统的用户名。
测试从客户端与接入:
ssh -l gitolite -i <file_id_rsa_foobar> -v -o PasswordAuthentication=no -T <host>
新增-T似乎需要我的本地系统,以获得旗帜(以借口的错误类型):
....
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/username/.ssh/id_rsa_foobar
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/username/.ssh/id_dsa_foobar
debug1: Remote: Forced command: /home/gitolite/bin/gl-auth/command <username>
....
hello <username> this is gitolite vX.X.XX-g0123abcd running on git X.X.X
the gitolite config gives you the following access:
R W mydir/project1
....
如果第一个版本的作品,这意味着公共密钥已被评为“账户下发布gitolite
”: ~gitolite/.ssh/authorized_keys
。
你遇到的权限问题在这里描述:“ 对于格里特和Hudson创建SSH密钥 ”:注意,的.ssh的所有父目录不应该有写权限的组或其它: /home
, /home/yourUser
, /home/yourUser/.ssh
。
另外,你不应该永远克隆gitolite回购与回购的完整路径: servername/home/gitolite/repositories/testing.git
是错误的(并且将旁路gitolite完全)。
servername:testing.git
是正确的。
从gitolite V2 DOC :
下面的问题(S)表明您PUBKEY被绕过gitolite,而直接进入到一个shell
运行git clone git@server:repositories/reponame
(附注存在repositories/
在URL)的作品。
[A正确gitolite键只会让你的git克隆git@server:reponame
(注缺少repositories/
)]
然而,另一件事尝试:如果AllowGroups是在使用服务器上的sshd之前,检查git的用户已包含在这些群体中的一个。