我在 Mac Snow Leopard 上,并且刚刚安装了git
。
我刚试过
git clone [email protected]:cakebook.git
但这给了我这个错误:
Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我想念什么?
我也尝试过使用ssh-keygen
而不设置密码,但是仍然存在相同的错误。
如果用户之前未生成 ssh 公用 / 专用密钥对
该信息在 theChaw 上有效,但可以应用于支持 SSH pubkey 身份验证的所有其他 git 存储库。 (例如,请参见gitolite ,gitlab 或 github。)
首先,请设置您自己的公钥 / 私钥对集。它可以使用 DSA 或 RSA,因此基本上您设置的任何密钥都可以使用。在大多数系统上,您可以使用 ssh-keygen。
- 首先,您需要 CD 进入. ssh 目录。打开终端并运行:
cd ~/.ssh && ssh-keygen
- 接下来,您需要将此复制到剪贴板。
- 在 OS X 上运行:
cat id_rsa.pub | pbcopy
- 在 Linux 上运行:
cat id_rsa.pub | xclip
- 在 Windows 上(通过 Cygwin / Git Bash)运行:
cat id_rsa.pub | clip
- 通过网站将密钥添加到您的帐户。
- 最后设置您的. gitconfig。
git config --global user.name "bob"
git config --global user.email bob@...
(不要忘记重新启动命令行以确保重新加载了配置)就是这样,您应该很好地克隆和签出。
有关更多信息,请参见 https://help.github.com/articles/generating-ssh-keys(感谢 @Lee Whitney)-
如果用户之前已经生成了 ssh 公用 / 专用密钥对
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
可以使用以下方法完成更广泛的故障排除甚至自动修复:
ssh -vT [email protected]
资料来源: https://help.github.com/articles/error-permission-denied-publickey/
当您访问 SSH URL(读 / 写)而不是 Git 只读 URL 时,可能会发生此错误,但是您对该存储库没有写权限。
有时,您只想克隆自己的存储库,例如,部署到服务器。在这种情况下,您实际上仅需要只读访问权限。但是,由于那是您自己的存储库,因此如果您愿意,GitHub 可能会显示 SSH URL。在这种情况下,如果远程主机的公共密钥不在 GitHub SSH 密钥中,则将拒绝您的访问,这将有望发生。
一个等效的情况是,当您尝试克隆您没有使用 SSH URL 的写访问权的其他人的存储库时。
简而言之,如果您打算仅克隆存储库,请使用 HTTPS URL ( https://github.com/{user_name}/{project_name}.git
[email protected]:{user_name}/{project_name}.git
)而不是 SSH URL([email protected]:{user_name) [email protected]:{user_name}/{project_name}.git
),它避免了(不必要的)公共密钥验证。
更新:GitHub 现在显示 HTTPS 为默认协议,此举可能会减少 SSH URL 的滥用。