我正在尝试启动并运行一个 git 存储库,并在我的远程 ubuntu 8.04 服务器上安装了 git 和 gitosis。我还在本地 ubuntu 10.04 机器上运行了 git。
经过大量尝试使其全部正常工作后,我设法使 ssh key 正常工作。当我输入:
ssh git@myserver.com
它返回:
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in envirement.
Connection to 123.456.789.1 closed.
据我了解,这意味着我成功连接到服务器并且 ssh key 被接受,但是因为它没有收到任何命令,所以它关闭了连接。
当我尝试获取 repo 时:
sudo git clone git@myserver.com:gitosis-admin.git
它返回:
Initialized empty Git repository in /home/git/repositories/gitosis-admin/.git/
git@myserver.com's password:
问题是,我没有密码或短语集,也不接受空密码或服务器密码或我本地的机器密码。我知道它根本不应该要求输入密码,因为它应该接受 ssh key (没有密码)并开始下载。
从这一点开始,我不知道如何将远程 repo 获取到我的本地机器,以便我可以开始使用 git。我希望有人能指出我正确的方向。
最佳答案
身份验证在您的第一个测试中有效( ssh git@server
)。如果身份验证失败(或因提示而停止),您将永远不会看到来自 gitosis 的消息。当您尝试执行正常的非命令 ssh 而不是让 git 在内部使用 ssh 时,您报告的警告和错误是意料之中的。
但是,您在稍微不同的环境中进行了克隆(在 sudo 下)。问题可能是 sudo 下的 ssh 没有使用非 sudo、test ssh 使用的私钥。在我的测试中,sudo ssh
总是使用来自 ~root/.ssh
的文件, 即使 HOME 指向普通用户的主目录。
解决方案:
还有另一种方式,但它是一种丑陋的方式;我只会留下一点提示,因为这对我来说似乎是个坏主意。您可能会滥用 root 权限来读取其他用户的私钥文件(如果有密码,您仍然需要输入密码)。
关于git - 克隆远程git仓库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677928/