2013-10-13 70 views
1

我在ubuntu 12.10 VPS中设置git。这是我第一次建立一个git仓库,所以我只是一个初学者,我确信我错过了一些重要的东西。我在我的服务器上执行了以下命令:在私人服务器中设置git,它要求输入git密码

# apt-get install git-core 
# git config --global user.name "Roberto" 
# git config --global user.name "[email protected]" 
# apt-get install gitolite 
# adduser --system --gecos 'git version control' --shell /bin/bash --group --disabled-password --home /home/git git 
# su git 
$ echo "PATH=$HOME/bin:$PATH" > ~/.bashrc 
$ cd 
$ gl-setup /tmp/roberto.pub 

roberto.pub是我的工作机器中的公共证书。然后从该工作机器,我试图克隆gitolite管理员信息库,管理git的服务器:

$ git clone [email protected]:gitolite-admin.git 
Cloning into 'gitolite-admin'... 
[email protected]'s password: 

这我还没有定!难道它不是要问我罗伯特的密码吗?

感谢您的帮助!

回答

0

gitolite通过使用单个系统用户工作,并且存储库的所有用户连接在那里。

使用gitolite服务器时的密码提示通常表示您连接的计算机上的私钥存在问题。

几个指针:

  • 所做的安装工作?请检查服务器上git用户的.ssh/authorized_keys文件,它是否包含您的公钥?如果没有,请重新运行gitolite的安装(也许与尝试从源代码安装为好)

  • 如果密钥是存在的,请检查您是否能够ssh到它ssh -T [email protected]-T禁用ptty分配,有时SSH没有按”吨工作与gitolite)。如果是,则git无法访问私钥。

  • 如果您无法连接(或者只有git无法),请检查您的ssh-agent是否正常工作。另外,请尝试查看是否要使用不是gitolite的pubkey身份验证连接到任何用户。

+0

我的公钥在.ssh/authorized_keys中。无论如何,ssh -T git @ vps不断向我询问密码。 – sogeking

+0

我可以通过ssh作为roberto远程登录,但如果我在服务器上禁用PasswordAuthentication(拒绝公钥(publickey)),则不能。我会尝试一个新的公钥。 – sogeking

+0

新密钥无效。 $ git clone git @ vps:gitolite-admin 克隆到'gitolite-admin'中 roberto @ vps的密码: – sogeking

2

gl-setup表示旧的gitolite v2。
不要。只是不要:很容易得到gitolite V3和all its nice features

克隆某处最新gitolite回购:

git clone https://github.com/sitaramc/gitolite 

,认真遵循installation instructionssetup

gitolite/install -to /your/path/to/gitolite/bin 
gitolite setup -pk roberto.pub 
+0

感谢您的建议,我按照您的说法完成了。在配置时我没有收到任何警告。但是当我尝试git clone ssh://[email protected]/gitolite-admin.git时,我收到错误“代理承认使用密钥签名失败”。然后它再次要求git的密码。 – sogeking

+0

@sogeking然后参见http://stackoverflow.com/a/2546065/6309。并确保你的私钥不是口令保护的:让我们用一个简单的ssh配置工作,而不必处理一个ssh代理。 – VonC

+0

我没有收到最后一个错误,我编辑了我的.ssh/config来使用我指定的公钥。但现在,它要求我为roberto的传递,然后它返回以下内容:“致命的:'gitolite-admin'似乎不是一个git存储库' – sogeking