本文最后更新于 2024-08-07,文章内容可能已经过时。

问题

最近在学习Git版本控制时,发现使用 git push 推送项目到远程仓库一直报错

遇到这种情况

  1. 首先查看自己命令有没有敲错

  2. 网络是不是有问题

  3. 远程仓库有没有成功创建

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.

检查发现都没有问题,按照报错提示操作也没用。

最后根据报错信息搜索原来时没有设置SSH密钥

方法如下,最后成功解决

SSH密钥设置方法

1. 检查 SSH 密钥是否添加到你的 GitHub 账户:

  1. 登录到你的 GitHub 账户。

  2. 点击右上角的头像,然后选择 "Settings" 或者 "Profile settings"。

  3. 在左侧菜单中选择 "SSH and GPG keys"。

  4. 检查页面上是否有你正在使用的 SSH 公钥。如果没有,你需要添加它。

2.生成新的 SSH 密钥对(如果需要):

  1. 打开你的终端。

  2. 运行命令 ,其中 your_email@example.com 应该替换为你的电子邮件地址。

    ssh-keygen -t ed25519 -C "your_email@example.com"
  3. 当提示保存密钥时,默认保存在 ~/.ssh/id_ed25519 和 ~/.ssh/id_ed25519.pub。 你会得到一个私钥和一个公钥。

  4. 私钥应该被安全地保存在你的本地计算机上, 而公钥则需要添加到你的 GitHub 账户。

3.添加 SSH 公钥到 GitHub:

  1. 使用文本编辑器打开新生成的公钥文件 ~/.ssh/id_ed25519.pub。 复制整个公钥。

  2. 回到 GitHub 的 "SSH and GPG keys" 页面,点击 "New SSH key"。

  3. 给你的新密钥起个标题,比如 "My Laptop",然后粘贴你的公钥到 "Key" 字段。

  4. 点击 "Add SSH key"。

4.测试 SSH 连接:

  1. 在你的终端运行 ssh -T git@github.com。

  2. 如果一切设置正确,你应该会看到类似下面的消息:

1Hi your_username! You've successfully authenticated, but GitHub does not provide shell
access

5.确认你的远程仓库使用的是 SSH URL:

  1. 确认你的 Git 仓库远程 URL 是以 git@github.com:username/repository.git 形式的 SSH URL。

  2. 如果不是,你可以通过运行 git remote set-url origin git@github.com:username/repository.git 更改它。