git@github.com: 权限被拒绝(公钥)

73

我创建了一个新的远程仓库,并尝试使用git push -u origin master命令将我本地的文件推送到新的仓库。但是,在我addcommit之后,它弹出以下错误:git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.如何解决这个致命错误?

我尝试过如何解决使用 Git 时的"Permission denied (publickey)"错误?,但是此链接中的问题似乎发生在第一次使用 Git 时。我已经使用我的 Git 一段时间了,我还需要遵循此解决方案吗?是否有更具体的解决方案?

这是我收到的致命错误。

C:\Users\ASUS\Desktop\React-Practice App\my-app>git status
On branch master
nothing to commit, working tree clean

C:\Users\ASUS\Desktop\React-Practice App\my-app>git push -u origin master
git@github.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错误信息 - Permission denied (publickey)]的重复问题(https://dev59.com/UGcs5IYBdhLWcg3wVyel)。 - phd
https://stackoverflow.com/search?q=%5Bgit%5D+Permission+denied+publickey - phd
12个回答

0
我在尝试从远程仓库将文件推送到Github时遇到了相同的问题。以下步骤有助于解决该问题:
  1. ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 在Git Bash中使用此命令创建新的SSH密钥。输入您在Github帐户中使用的电子邮件。
  2. 将创建一个名为id_rsa的新SSH密钥。按Enter键
  3. 它会再次要求您创建一个口令,只需按两次Enter键即可
  4. clip < ~/.ssh/id_rsa.pub 输入此命令以复制SSH密钥
  5. 现在进入github->设置-> SSH和GPG密钥->新SSH 给它一个标题并粘贴已复制的密钥

-1
“Permission denied (publickey)”错误表示在尝试推送到GitHub存储库时,SSH密钥验证出现问题。以下是解决此问题的逐步指南:
1. 检查SSH密钥:
  1. 检查现有的SSH密钥: 确保您有现有的SSH密钥。运行以下命令列出您现有的密钥:

    ls -al ~/.ssh
    

    查找名为id_rsaid_rsa.pub的文件。

  2. 生成新的SSH密钥(如果需要): 如果您没有SSH密钥或想要生成一个新的密钥,可以使用以下命令:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    按照提示生成新的密钥。确保将"your_email@example.com"替换为您的实际电子邮件地址。

  3. 将SSH密钥添加到SSH代理: 启动SSH代理并添加您的私钥:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    
2. 将SSH密钥添加到GitHub:
  1. 将SSH密钥复制到剪贴板: 使用以下命令将您的SSH密钥复制到剪贴板:

    clip < ~/.ssh/id_rsa.pub
    

    如果clip命令不可用,您可以使用文本编辑器打开id_rsa.pub文件并手动复制其内容。

  2. 将SSH密钥添加到GitHub:

    • 转到您的GitHub帐户设置。
    • 导航到“SSH和GPG密钥”或“SSH密钥”。
    • 点击“New SSH key”或“Add SSH key”。
    • 将您的密钥粘贴到提供的字段中并给它一个标题。
3. 更新远程URL:
  1. 检查当前远程URL: 验证您的存储库的当前远程URL:

    git remote -v
    
  2. 更新远程URL(如果需要): 如果URL使用的是HTTPS,您可能希望将其更新为使用SSH:

    git remote set-url origin git@github.com:yourusername/yourreponame.git
    

    yourusernameyourreponame替换为您的GitHub用户名和存储库名称。

4. 重试 Git Push:

再次尝试推送您的代码:

git push -u origin master

这应该会提示您输入SSH密码,输入后,推送应该可以继续进行,而不会出现"Permission denied (publickey)"错误。

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