立聪堂德州十三局店 发表于 2025-4-3 08:39:33

git@github.com: Permission denied (publickey). fatal: Could not read from remote

你遇到的错误 Permission denied (publickey) 表明 Git 无法使用 SSH 密钥乐成毗连到 GitHub,通常是因为以下几个原因:

[*]SSH 密钥没有精确配置或加载
[*]GitHub 没有精确配置你的公钥
[*]当地 SSH 客户端配置存在题目
下面是排查和解决题目的步骤:
1. 检查 SSH 密钥是否存在

首先,检查是否已经生成了 SSH 密钥,并且密钥文件是否存在。默认情况下,密钥文件应该在 ~/.ssh 目次下,比方:


[*]Windows:C:\Users\你的用户名\.ssh\id_rsa 或 C:\Users\你的用户名\.ssh\login(你使用的私钥文件名)
[*]macOS/Linux:~/.ssh/id_rsa
使用以下下令检察 ~/.ssh 目次中的文件:
ls ~/.ssh
假如你看到了类似 id_rsa 和 id_rsa.pub 的文件,表示你已经生成了 SSH 密钥。
2. 检查 SSH 公钥是否已添加到 GitHub

确保你已经将公钥添加到 GitHub 中。你可以通过以下步骤来检查:

[*] 复制你的公钥:使用以下下令检察并复制公钥内容:
cat ~/.ssh/id_rsa.pub# 或者 cat ~/.ssh/login.pub

[*] 登录 GitHub:进入 GitHub 网站,登录到你的账户。
[*] 添加公钥到 GitHub:

[*]进入 Settings(右上角头像点击下拉菜单,选择 Settings)。
[*]在左侧菜单中,选择 SSH and GPG keys。
[*]点击 New SSH key,将你刚才复制的公钥粘贴到 Key 字段中,并给密钥命名(比方 My Laptop)。
[*]点击 Add SSH key。

3. 检查 SSH 毗连是否正常

确认你可以大概通过 SSH 与 GitHub 创建毗连。使用以下下令测试 SSH 毗连:
ssh -T git@github.com
假如统统配置精确,GitHub 会返回类似以下的消息:
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
假如你收到类似 Permission denied 的错误,可能是 SSH 密钥未精确配置或者 GitHub 中未添加你的公钥。
4. 确保 SSH 密钥被加载到 ssh-agent 中

假如你的密钥已经存在并添加到 GitHub,但仍旧无法毗连,可能是你的 SSH 密钥没有加载到 ssh-agent 中。可以按以下步骤加载密钥:

[*] 启动 ssh-agent(假如尚未启动):
eval "$(ssh-agent -s)"

[*] 添加你的私钥到 ssh-agent:
ssh-add ~/.ssh/id_rsa# 或者 ~/.ssh/login

[*] 验证 SSH 密钥是否已加载:
ssh-add -l
假如密钥已乐成加载,输出将列出你的密钥指纹。
5. 配置 Git 使用精确的 SSH 密钥

假如你有多个 SSH 密钥,并且 Git 没有使用精确的密钥,你可以通过配置 ~/.ssh/config 来指定使用哪个密钥。比方,打开或创建一个 ~/.ssh/config 文件,然后添加如下内容:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa# 或者你的私钥路径
6. 确保远程仓库 URL 是精确的

最后,确保你的 Git 配置中远程仓库的 URL 是 SSH 格式。假如你使用的是 HTTPS 格式(比方 https://github.com/username/repository.git),那么 Git 会要求你输入用户名和暗码,而不是使用 SSH 密钥举行身份验证。
你可以检察当前远程仓库的 URL:
git remote -v
假如远程 URL 不是 SSH 格式(即不是 git@github.com:username/repository.git),你需要修改它。使用以下下令将远程仓库 URL 更改为 SSH 格式:
git remote set-url origin git@github.com:your-username/your-repository.git
7. 重试推送

完成上述步骤后,重新尝试推送代码:
git push -u origin main# 或者 master
总结



[*]确保你的 SSH 密钥已经生成 并且精确配置。
[*]将 公钥添加到 GitHub。
[*]使用 ssh -T git@github.com
测试 SSH 毗连。
[*]确保你的密钥已经加载到 ssh-agent 中。
[*]确保远程仓库 URL 使用的是 SSH 格式。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: git@github.com: Permission denied (publickey). fatal: Could not read from remote