我用的是Mac雪豹,刚刚安装了git。

我只是试了

git clone git@thechaw.com:cakebook.git

但这给了我这个错误:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我错过了什么? 我也试过做ssh-keygen没有密码,但仍然错误。


当前回答

可能是public/private配置不正确。请按照步骤来做。 在窗口任意位置执行命令

ssh-keygen -o -f ~/.ssh/id_rsa

现在转到c://users/xyz/。Ssh /打开id_rsa密钥(路径可能不同) 现在转到gitlab和用户配置文件>设置>ssh密钥,并在这里添加您的密钥。 现在试试克隆

其他回答

在我的情况下,我重新安装了ubuntu,用户名从以前的改变。在这种情况下,生成的ssh密钥也与之前的密钥不同。

这个问题通过在存储库中复制当前的ssh公钥来解决。密钥将在用户的/home/.ssh/id_rsa.pub中可用

当您正在访问SSH URL(读/写)而不是Git只读URL,但您没有对该repo的写访问权限时,可能会发生此错误。

有时你只是想克隆你自己的repo,例如部署到服务器上。在这种情况下,实际上只需要READ-ONLY访问。但由于这是你自己的回购,GitHub可能会显示SSH URL,如果这是你的偏好。在这种情况下,如果您的远程主机的公钥不在您的GitHub SSH密钥中,您的访问将被拒绝,这是预期会发生的。

一个等效的情况是,当您尝试克隆其他人的回购时,您没有SSH URL的写访问权。

总之,如果您的意图是只克隆一个repo,请使用HTTPS URL (https://github.com/{user_name}/{project_name}.git)而不是SSH URL (git@github.com:{user_name}/{project_name}.git),这样可以避免(不必要的)公钥验证。


更新:GitHub现在显示HTTPS作为默认协议,这一举动可能会减少SSH url的滥用。

在GitHub中使用终端添加RSA密钥:

MAC:

进入Users/ xxxx /.ssh文件夹 执行命令:cd ~/。ssh && ssh-keygen -t ed25519 -C "github_email@id.com" 输入文件名为id_rsa 输入if ask口令 再次输入 运行eval "$(ssh-agent -s)" 打开配置文件:Open ~/.ssh/config 如果不存在,则创建为: 触碰~ / . ssh / config 现在打开配置文件,并在文件中添加以下行:

主机* AddKeysToAgent是的 UseKeychain是的 IdentityFile ~ / . ssh / id_rsa

关闭文件 为agent run命令添加ssh私钥。 ssh-add -K ~/.ssh/id_rsa . sh 现在复制ssh密钥为: Pbcopy < ~/.ssh/id_rsa.pub 去gitHub/BitBucket 点击管理帐户 点击SSH键 删除现有密钥 点击添加键 粘贴复制的密钥。

对我来说,问题是使用sudo:

sudo git克隆git@github.com:userName/repo.git导致上述错误。

所以为了解决这个问题,我咀嚼了我试图克隆到的文件夹

sudo chown -R $USER:$USER /var/www/iqge.org/html

然后用这个 git克隆git@github.com:userName/repo.git was successfully done

我刚刚在设置我当前的项目时遇到了这个问题,上面的解决方案都不起作用。所以我试着用命令ssh -vT git@github.com查看调试列表上到底发生了什么。我注意到我的私钥文件名不在列表中。因此,将私钥文件名重命名为'id_rsa'就可以了。希望这能有所帮助。