当git clone
是运行gitolite的ubuntu服务器的repo时,我遇到了一些问题。
首先,我从想要从服务器克隆存储库的开发人员那里获得了一个公钥。这是用油灰创建的rsa密钥。因此,我做了以下操作,用将其从putty样式解析为openssh格式
ssh-keygen -i -f /tmp/ssh2/YourName.pub > /tmp/openssh/YourName.pub
(取自http://gitolite.googlecode.com/git/doc/ssh-troubleshooting.mkd?r=d3a663d03f1027f909732d55d0519bdd84edb62c)
并将公钥以及repo的新条目和配置文件中的新用户上传到gitolite admin repo。
到目前为止,一切都很好。
开发人员正在使用***和putty连接到服务器,该服务器在非标准端口上运行git,他一次又一次地得到相同的错误:
Cloning into 'D:pathtodirctory'...
error: Recv failure: Connection was reset while accessing http://sub.domain.com/info/refs
fatal: HTTP request failed
git did not exit cleanly (exit code 128)
有人能就这个问题给我一些建议吗?
编辑:
同时,我们通过用ssh://
协议而不是git://
来寻址存储库,从而成功地git clone
了,所以这似乎不是rsa_public.key之类的问题。
服务器上的iptables正在接受通过git端口的连接,但它一直给出上述错误。
OP herom最初评论说开发人员使用git://git@remote.server.com:port/repo.git
作为地址。
我问是否存在防火墙问题,阻止使用git端口(9418
),但OP提到:
不,不应该有防火墙问题,因为iptables正在接受git端口的流量-当从外部连接时,该端口被转发,并且看起来是另一个端口
现在,开发人员通过ssh://
(甚至连接到ssh-port
!)克隆了repo
我注意到git端口有时会被阻塞,如本线程所示
如果不是在客户端,可能在服务器端。