如何通过带密钥的ssh将私有服务器上的git repo克隆到本地机器?

时间:2016-05-17 12:10:43

标签: linux git ssh

无法查看解决此特定问题的任何帖子,所以这里就是......

我在vps上有一个git repo。 repo跟踪一个网站(包含在public_html中)以及该网站所需的目录(即privatetmp等)。像这样:

    drwxr-xr-x  8 someuser someuser 4096 Jan 17 07:00 .git/
    drwxrwx---  5 someuser www-data 4096 Jan 17 07:00 private/
    drwxr-x--- 10 someuser www-data 4096 Jan 17 07:00 public_html/
    drwxrwx---  2 someuser www-data 4096 Jan 17 07:00 tmp/

因此,此repo位于Web根目录之上,不可公开访问。在此linux系统上设置了仅具有密钥访问权限的ssh。

我想通过ssh将这个远程git repo克隆到我的本地机器上。怎么样?

我试过git clone ssh://user@ipaddress:22/path/to/repo .,但我得到了:

    Cloning into '.'...
    Permission denied (publickey).
    fatal: Could not read from remote repository.

我不明白为什么这是因为我的ssh配置文件正确指定了IdentityFileHostname,而正常的ssh可以正常使用这些设置。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

将环境变量GIT_TRACE设置为0以外的值将使git输出别名的扩展,并委托给其他子程序。

这将允许您查看git用于ssh到远程计算机的确切命令。

无论如何,这里的信息非常明确: Permission denied (publickey). 这肯定来自ssh,所以如果正常的ssh工作正常,你需要找到你所谓的正常ssh和git正在执行的ssh之间的区别。