运行Ubuntu,以防相关。
我已经有了一个Github帐户,添加了我的公钥,我正在从Windows迁移到Ubuntu。我完成了所有必要的步骤来设置我的凭据,然后(明智地)将我的回购克隆到.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在哪里找到密钥的步骤,但我不知道那个步骤是什么。
答案 0 :(得分: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
。