返回

克服Git Permission Denied (publickey)错误:安全SSH秘钥指南

前端

Git Permission Denied (publickey) 错误是一个常见的困扰,它会阻止你克隆或推送代码到你存储库。对于Git新手来说,这个错误可能会令人沮丧,但解决起来其实很简单。本文将深入探讨导致此错误的原因,并提供一步一步的指导,帮助你生成SSH密钥并解决此问题,让你重回顺畅的开发流程。

错误原因:缺乏SSH密钥

Git使用SSH协议在你的本地机器和远程存储库之间建立安全连接。为了建立此连接,需要生成一对SSH密钥:一个私钥(保存在本地)和一个公钥(共享到远程存储库)。如果没有在本地生成SSH密钥,就会出现Permission Denied (publickey)错误。

解决方法:生成SSH密钥

解决此错误的最佳方法是生成SSH密钥。这里提供了生成密钥的分步指南:

  1. 打开终端或命令提示符。
  2. 运行以下命令生成密钥:
    • macOS/Linux:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • Windows:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. 按Enter键继续,无需输入密码(推荐)。
  4. 将密钥保存到默认位置(通常是~/.ssh/id_rsa)。

添加公钥到远程存储库

生成密钥对后,需要将公钥添加到远程存储库中。你可以使用以下步骤将公钥添加到GitHub或GitLab:

  1. 复制公钥。
    • macOS/Linux:cat ~/.ssh/id_rsa.pub
    • Windows:cat %USERPROFILE%\.ssh\id_rsa.pub
  2. 将公钥粘贴到远程存储库的SSH密钥设置中。

验证SSH连接

添加公钥后,可以使用以下命令测试SSH连接:

ssh -T git@gitee.com

如果成功,你将看到类似以下内容:

Hi username! You've successfully authenticated, but Gitee does not provide shell access.

结论

通过生成SSH密钥并将其添加到远程存储库,你就可以解决Git Permission Denied (publickey)错误。SSH密钥为你的代码传输提供安全连接,让你专注于开发,而无需担心权限问题。下次遇到此错误时,请按照本文中的步骤操作,让你的Git工作流程恢复正常运行。