我正在尝试启动并运行git存储库并在我的远程ubuntu 8.04服务器上安装git和gitosis。我也在我当地的ubuntu 10.04机器上运行git。
在尝试将所有工作完成后,我设法让ssh键工作。当我输入:
ssh git@myserver.com
它返回:
通道0上的PTY分配请求失败
错误:gitosis.serve.main:在envirement中需要SSH_ORIGINAL_COMMAND。
关闭123.456.789.1的连接。
据我所知,这意味着我已经成功连接到服务器并且接受了ssh密钥,但由于它没有得到任何命令,因此它关闭了连接。
当我试图获得回购时:
sudo git clone git@myserver.com:gitosis-admin.git
它返回:
/home/git/repositories/gitosis-admin/.git /
中初始化的空Git存储库git@myserver.com的密码:
问题是,我没有设置密码或短语,也不接受空密码或服务器密码或本地机器密码。我知道它根本不应该要求输入密码,因为它应该接受ssh密钥(没有密码)并开始下载。
从这一点来说,我不知道如何将远程仓库发送到我的本地机器,所以我可以开始使用git了。我希望有人能指出我正确的方向。
答案 0 :(得分:0)
身份验证在您的第一次测试(ssh git@server
)中有效。如果身份验证失败(或因提示而停滞),您将永远不会看到来自 gitosis 的消息。当您尝试执行正常的非命令 ssh 而不是让 git 在内部使用 ssh 时,会出现您报告的警告和错误
但是,您在稍微不同的环境中(在 sudo 下)完成了克隆。问题可能是 sudo 下的 ssh 没有使用非 sudo 的私钥,测试 ssh 正在使用。在我的测试中,sudo ssh
始终使用来自~root/.ssh
的文件,即使HOME指向普通用户的主目录。
解决方案:
还有另外一种方式,但它是一种丑陋的方式;我只会暗示它,因为对我来说这似乎是个坏主意。您可能会滥用root权限来读取其他用户的私钥文件(如果有密码,您仍然需要输入密码)。