克隆git仓库时出现“拒绝访问”的错误提示

10

我刚刚设置了一个亚马逊EC2实例,并安装了git。

sudo yum install git

我接下来会介绍如何在Github上设置ssh密钥。现在当我试着将我的仓库克隆到/var/www/html文件夹中时,出现了以下错误...

fatal: could not create work tree dir 'example.com'.: Permission denied

当我以root身份运行时...

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

Please make sure you have the correct access rights
and the repository exists.

但是我确保我的Github公钥与我的 ~/.ssh/id_rsa.pub 公钥匹配。这里有什么我忽略的吗?

5个回答

16
您的第一个错误是由于您的用户没有写入 /var/www/html 的权限。您可以授予您的用户执行该操作的权限。
当以root身份运行时,您的第二个错误可能是因为您的ssh密钥存储在用户主目录中,而不是在 /root/.ssh/ 中,或者您的 .ssh 目录或 ~/.ssh/id_rsa.pub 密钥文件权限设置不正确。~/.ssh/应该具有 0700 权限位,并且应该拥有 ~/.ssh/id_rsa.pub,例如 0600。

如果我在我的/root (/root/.ssh)中没有/.ssh目录,那么我应该创建它,然后从那里运行ssh-keygen等吗?现在cd ~/.ssh会带我到我的密钥。 - coryj
@coryjacik,是的,你可以这样做。但最佳实践应该是不要以root身份执行这些操作。最好将/var/www/html的组更改为您的用户所属的组,并授予该目录组访问权限。 - nos

2
注意:此修复方法适用于Mac用户。
如果您的macOS版本为10.12.2或更高版本,则需要修改您的~/.ssh/config文件,以便自动将密钥加载到ssh-agent并将密码存储在您的钥匙串中。
Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/<your_id_rsa>

将您的SSH私钥添加到ssh-agent中,并将您的密码短语存储在密钥链中。如果您使用不同名称创建了您的密钥,或者如果您正在添加一个具有不同名称的现有密钥,则请在命令中用您的私钥文件的名称替换id_rsa。
ssh-add -K ~/.ssh/ 如需更多信息,请查看https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

1

你尝试过这个吗:

git: 致命错误:无法从远程存储库读取

你可以在远程URL的一部分中指定SSH应该发送到远程系统的用户名。在远程主机名之前放置用户名,后跟@符号。

git remote set-url website abc@***.com:path/to/repo

0

id_rsa私钥文件是否与你的公钥文件(~/.ssh/id_rsa.pub)成对呢?

如果不是(或者你不确定),我建议你使用ssh-keygen -t dsa重新生成一对新的私钥/公钥。


0

我的解决方案与nos的匹配。添加根用户的公钥可以解决问题。另一个选择是更改目录的权限并将命令作为普通用户执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接