GIT远程无法通过SSH获取

时间:2012-05-02 08:48:51

标签: git ssh repository fetch

我刚刚在现有的网站根目录中初始化了一个GIT仓库。 我有本网站的本地开发副本,已经是GIT回购。我不能只从另一个克隆一个,因为多年来本地/现场版本已经失去同步。

我正试图让他们再次使用GIT,但我希望能够在现场网站上进行获取并运行 git diff < / p>

我的问题是,在本地网站上我已将实时网站添加为远程仓库:

git remote add live user@server.co.uk:/path/to/repo

我可以通过ssh成功登录我的服务器:

ssh user@server.co.uk

但是当我尝试获取并输入ssh密码时,命令行只返回密码提示,就好像我输错了一样。但我知道密码是正确的,因为我可以使用SSH登录。

我是否必须在远程网址之前指定 ssh:// ?我有什么需要做的ssh远程回购工作

更新

我添加了 ssh:// 前缀,但它没有任何区别。这就是它在.git / config

中的样子
[remote "live"]
    url = ssh://user@server.co.uk/path/to/repo
    fetch = +refs/heads/*:refs/remotes/live/*

运行 GIT_TRACE = true git fetch live 添加以下行:

trace: run_command 'ssh' 'user@server.co.uk' 'git-upload-pack '\''/path/to/repo'\'''

在收到消息之前,我必须输入3次密码:

fatal: the remote end hung up unexpectedly

3 个答案:

答案 0 :(得分:2)

我认为你错过了遥控器的别名。

git remote add origin user@server.co.uk:/path/to/repo

请注意origin位。

您发布的.git / config是否准确?如果是,请尝试从

更改远程URL

url = ssh://user@server.co.uk/path/to/repo

url = user@server.co.uk:/path/to/repo

请注意:将服务器名称与服务器路径分开。

答案 1 :(得分:0)

是的,你需要ssh://。只需在.git / config文件中更改它:

url = ssh://user@server.co.uk:/path/to/repo

答案 2 :(得分:0)

以下仅适用于您对服务器的shell访问权限。可能不是你想要的,但是你想尝试设置一个公钥/私钥auth。只需使用以下命令生成RSA密钥对:

ssh-keygen -t rsa 我建议您使用密码短语,因为您可以在生成密钥对后将公钥存储到您的服务器上,然后将其存储在ssh-agent中,您可以使用scp:

scp -p ~/.ssh/id_rsa.pub host:~/.ssh/然后在服务器中执行cat id_rsa.pub >> authorized_keys