【问题标题】:How to clone git repo on private server to local machine via ssh with key?如何通过带有密钥的 ssh 将私有服务器上的 git repo 克隆到本地机器?
【发布时间】:2016-05-17 20:36:20
【问题描述】:

看不到任何解决这个特定问题的帖子,所以这里......

我在 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 with key only access。

我想通过 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 可以在这些设置下正常工作。

有什么想法吗?谢谢。

【问题讨论】:

  • 只是为了好奇:您的公钥是否存储在 linux 服务器上?
  • 将本地机器上的 SSH 公钥添加到 VPS。
  • @ckruczek yes :) 这就是我首先可以通过 ssh 连接的方式。谢谢。
  • @Peter 我在该页面上尝试了建议的解决方案,但没有成功。我会再试一次并记录错误消息。

标签: linux git ssh


【解决方案1】:

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

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

无论如何,这里的信息很清楚: Permission denied (publickey). 这肯定来自 ssh,所以如果一个普通的 ssh 工作正常,你需要找出你所谓的普通 ssh 和 git 正在执行的 ssh 之间的区别。

【讨论】:

  • 是的,我同意 - 消息显然来自 ssh。我会进一步调查,看看我能找到什么。谢谢。
  • 为了进一步调试,您可以将 GIT_SSH_COMMAND 环境变量设置为类似“ssh -vvv”的内容,这样 ssh 就会很冗长(我认为它需要 GIT_TRACE 才能看到输出,但不确定)。这也可以通过您的 ~/.ssh/config 使用“Host ipaddress\n LogLevel DEBUG3”作为配置内容来实现。
猜你喜欢
  • 2015-07-11
  • 2017-08-15
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2015-07-21
  • 2019-05-10
相关资源
最近更新 更多