2012-08-01 58 views
4

我有一个SSH访问服务器,我想在这里放置一个Git origin repo。我刚刚在本地创建了一个--bare --shared回购协议,并将其复制到每个SCP的服务器上。现在我想根据SSH网址克隆这个回购。我试过安装Git远程SSH(git-upload-pack/git-receive-pack)

ssh://[email protected]/folder1/folder2/gifolder.git 
ssh://USERNAME:[email protected]/folder1/folder2/gifolder.git 
ssh://[email protected]:PORT/folder1/folder2/gifolder.git 
ssh://[email protected]:/folder1/folder2/gifolder.git 

和上面的一些更多的组合。但混帐总是说

"fatal: The remote end hung up unexpectedly" 

虽然我启用了用户名和密码在每台SSH连接。

是否有可能以我想要的方式使用git,还是必须将其设置为完全不同?

UPDATE:

我配置Git的扩展使用OpenSSH,而不是腻子现在OpenSSH的问我:“克隆”后输入密码。当我输入正确的密码,我发现了以下错误:

bash: git-upload-pack: command not found 

(OpenSSH的似乎得到到服务器的连接,因为它要我重新输入,当我进入我的东西密码其他)所以。现在我需要解决这个新问题。首先:我没有启用在服务器上安装git。是否可以在不安装git的情况下使“git-upload-pack”和“git-receive-pack”可用?

再次感谢

UPDATE2 - 解决方案:

的解决方案是远程仓库目录集成为每SSH本地目录/ SFTP。为此,我使用http://www.expandrive.com/。 感谢

回答

3

建立SSH连接时,您应该不需要输入密码:
如果你的公钥对的〜/ .ssh/authorized_keys中发表的,这应该是足够了。

如果您的私钥受密码保护(在这种情况下,请参阅“ssh daemon asks for a password”,您可能需要ssh-agent),您可能需要密码。

否则,请参阅 “Unable to Git-push master to Github” 了解SSH调试技巧,包括:


打开的ssh是一个更安全的选择(并且与mysysgit一起打包),但它仍然需要您正确定义%HOME%。

再次,ssh -vvvT将在这里帮助。

First of all: I'm not enabled to install git on the server.
Is it possible to make " git-upload-pack " and " git-receive-pack " available without installing git?

不,这是不可能的。

git必须安装,并在sshd路径(在服务器上运行的ssh守护进程)。


OP andineupert总结了评论:

Due to the need to install git on the server (which I couldn't) I had to integrate the remote repo-dir as a local dir per SSH/SFTP.
Now everything's working.

+0

它现在似乎是另一个问题,但谢谢! – andineupert 2012-08-01 12:19:18

+0

@andineupert好的,我已经更新了我的答案。 – VonC 2012-08-01 13:08:54

+1

由于需要在服务器上安装git(我不能),我必须将远程repo-dir作为每个SSH/SFTP的本地目录来集成。现在一切正常。 – andineupert 2012-08-02 09:21:43

2

您需要的二进制文件混帐上传包 & 混帐收到包在遥控器上的路径,而一个SSH是正在执行。

如果不是这样

git config remote.origin.uploadpack /somepath/git/git-upload-pack 
git config remote.origin.receivepack /somepath/git/git-receive-pack 

其中起源在你的仓库每个远程链路配置它们是远程。