2016-05-17 97 views
0

看不到任何帖子,解决这个具体问题,所以这里去...如何通过SSH密钥将私人服务器上的git repo克隆到本地机器上?

我有一个vps的git回购。回购商追踪网站(包含在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/ 

因此,此回购在Web根目录之上,不可公开访问。在这个linux系统上设置只有密钥访问的ssh。

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

我已经试过git clone ssh://[email protected]:22/path/to/repo .但我得到:

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

我不明白这是为什么,因为我的ssh配置文件中正确指定IdentityFileHostname和正常的SSH正常工作与这些设置。

任何想法?谢谢。

+0

只是为了好奇:您的公钥是否存储在Linux服务器上? – ckruczek

+0

你看过这个http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-without-ruby? – Peter

+0

将本地计算机上的公共SSH密钥添加到VPS。 – Oldskool

回答

0

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

这将允许你看到git使用ssh到你的远程机器的确切命令。

在任何情况下,这里的信息是很清楚的: Permission denied (publickey). 这来自SSH是肯定的,所以如果一个正常的SSH正常工作,你需要找到你所谓的正常SSH之间的区别, ssh该git正在执行。

+0

是的,我同意 - 该消息显然来自ssh。我会进一步调查,看看我能找到什么。谢谢。 – penname

+0

为了进一步调试,可以将GIT_SSH_COMMAND环境变量设置为“ssh -vvv”,这样ssh将是详细的(我认为它需要GIT_TRACE来查看输出,但不确定)。这也可以通过使用“主机ipaddress \ n LogLevel DEBUG3”作为配置内容的'〜/ .ssh/config'来实现。 – user801247

相关问题