IT评测·应用市场-qidao123.com技术社区
标题:
git@github.com: Permission denied (publickey). fatal: Could not read from remote
[打印本页]
作者:
立聪堂德州十三局店
时间:
2025-4-3 08:39
标题:
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4