【问题标题】:Permission denied (publickey) when cloning in webroot directory but not in ~/.ssh在 webroot 目录但不在 ~/.ssh 中克隆时权限被拒绝(公钥)
【发布时间】:2013-12-25 02:27:42
【问题描述】:

运行 Ubuntu,以防万一。

我已经有一个 Github 帐户,并添加了我的公钥,我正在从 Windows 迁移到 Ubuntu。我完成了所有必要的步骤来设置我的凭据,然后(明智地)将我的一个 repo 克隆到 .ssh 目录中。一切正常,但是……当然,这不是我想要的。所以我删除了我克隆到的目录,实际上从我想要的目录中尝试了它,我得到:

rich@ubuntu:/opt/lampp/htdocs$ sudo git clone git@github.com:Polisurgist/introRecorder.git
Cloning into 'introRecorder'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

所以由于某种原因,它能够使用我的密钥,但只有当我克隆到包含我的密钥的目录时。我确定我错过了告诉 git 在哪里找到密钥的步骤,但我不知道该步骤是什么。

【问题讨论】:

  • 在不使用 sudo 的情况下运行相同的命令会发生什么?
  • 无法创建目录...虽然它确实知道它要创建的目录,所以我想这确实解决了 ssh 问题

标签: git ubuntu github ssh


【解决方案1】:

可能是因为 ssh 在当前文件夹中查找公钥/私钥,所以它第一次工作。

但是一旦你移动了目录,ssh 就会在 ~/.ssh/id_rsa(.pub) 中寻找那些相同的键。
因此,您需要确保这些密钥在正确的位置(应该是/home/rich/.ssh),并受到正确的保护(参见“git push failing in gitlab”)。

使用 sudo 执行 git clone 将意味着 ssh 会在 root homedir 中查找这些键,这不一定是您想要的。

/opt/lampp/htdocs: 无法创建目录。

这意味着您需要 /root/.ssh 中的这些键,如果您希望将 git clone 设置为 root(请参阅“Home folder in root and not in home… I'm confused!”)。
但是您应该以 root 身份创建该文件夹并更改其所有权,然后将 git clone 设置为 rich

【讨论】:

  • 是的,这似乎是问题所在。当然,root 被锁定在 Ubuntu 上,所以我认为我不能这样做,但我可以在我的 webroot 中更改权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 2017-10-30
  • 2019-11-24
  • 2014-11-08
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多