我有一个具有SSH访问权限的服务器,我想在那里放置一个Git原始仓库。我刚刚在本地创建了一个--bare --shared repo并将其复制到每个SCP的服务器上。现在我想根据SSH网址克隆这个repo。我试过了
ssh://USERNAME@HOST/folder1/folder2/gifolder.git
ssh://USERNAME:PASSWORD@HOST/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:PORT/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:/folder1/folder2/gifolder.git
以及上述的一些组合。但是Git总是说
"fatal: The remote end hung up unexpectedly"
虽然我已经启用了每个SSH连接USERNAME和PASSWORD到主机。
是否可以按照我想要的方式使用git,或者我必须将它设置为完全不同?
更新:
我将Git Extension配置为使用OpenSSH而不是Putty,现在OpenSSH要求我在“clone”之后输入密码。当我输入正确的密码时,我收到以下错误:
bash: git-upload-pack: command not found
(OpenSSH似乎与服务器建立了连接,因为它要我在输入其他内容时重新输入密码)所以。现在我需要解决这个新问题。首先:我无法在服务器上安装git。是否可以在不安装git的情况下制作“git-upload-pack”和“git-receive-pack”?
再次感谢
UPDATE2 - 解决方案:
解决方案是将远程存储库目录集成为每个SSH / SFTP的本地目录。我正在使用http://www.expandrive.com/来达到这个目的。 感谢
答案 0 :(得分:3)
建立ssh连接时,您不需要输入密码:
如果您的公钥发布在〜/ .ssh / authorized_keys上,这就足够了。
如果您的私钥受密码保护,则可能需要密码(在这种情况下,请参阅“ssh daemon asks for a password”,您可能需要ssh-agent
)。
否则,请参阅“Unable to Git-push master to Github”以获取更多ssh调试技巧,包括:
ssh -vvvT ssh://USERNAME@HOST
(确保定义了HOME,特别是如果您使用的是Windows:请参阅“Heroku push master ssh
problem”)/var/log/secure
中,但它可能因Os而异)Openssh是一个更安全的选择(并与mysysgit一起打包),但它仍然要求您正确定义%HOME%。
同样,ssh -vvvT
会在这里提供帮助。
首先:我无法在服务器上安装git 是否可以在不安装git的情况下使“
git-upload-pack
”和“git-receive-pack
”可用?
不,这是不可能的。
必须安装 git
,并且路径为sshd
(服务器上运行的ssh
守护程序)。
OP andineupert在评论中结束:
由于需要在服务器上安装git(我不能),我必须将远程repo-dir集成为每个SSH / SFTP的本地目录。
现在一切正常。
答案 1 :(得分:2)
您需要二进制文件 git-upload-pack &正在执行ssh时,远程路径中的 git-receive-pack 。
如果没有为您的存储库中的每个远程链接配置它们,就像这样
git config remote.origin.uploadpack /somepath/git/git-upload-pack
git config remote.origin.receivepack /somepath/git/git-receive-pack
原点是遥控器。