linux - 如何使用 key 通过 ssh 将私有(private)服务器上的 git repo 克隆到本地计算机?

标签 linux git ssh

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

我在 vps 上有一个 git 仓库。 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/

因此,此存储库位于网络根目录之上,不可公开访问。在此 Linux 系统上设置了仅具有 key 访问权限的 ssh。

我想通过 ssh 将这个远程 git 仓库克隆到我的本地机器上。如何?

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

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

我不明白这是为什么,因为我的 ssh 配置文件正确指定了 IdentityFileHostname 并且正常的 ssh 在这些设置下工作正常。

有什么想法吗?谢谢。

最佳答案

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

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

无论如何,这里的信息非常明确: 权限被拒绝(公钥)。 这肯定来自 ssh,因此如果普通 ssh 工作正常,您需要找出所谓的普通 ssh 与 git 正在执行的 ssh 之间的区别。

关于linux - 如何使用 key 通过 ssh 将私有(private)服务器上的 git repo 克隆到本地计算机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275803/

相关文章:

javascript - 提交时从 git pull 到网站

git - git下提交文件时如何控制重命名阈值?

git push .git/描述文件

go - 从输出中排除 SSH 命令执行状态

git - Bitbucket ssh clone 权限被拒绝(公钥)

linux - 在 linux 中,如何保护文件不被删除/修改?

c - 一个简单的linux设备驱动程序

c++ - linux 终端中的彩色控制台框

linux - Golang 在提示时输入 SSH Sudo 密码(或退出)

linux - Gerrit prolog规则——充分设置累积投票