GitHub SSH 连接问题解决方案
参考: 解决 Git 在使用时出现 'git@github.com: Permission denied (publickey).错误
场景复现
在拉取项目时报错,查看文档后发现是需要设置访问密钥
生成密钥:期间一直回车即可,生成的文件一般放在 ~/.ssh
ssh-keygen -t rsa -b 4096 -C "your_email@xxx.com"

问题描述
在执行了 ssh-keygen -t rsa -b 4096 -C "2755622754@qq.com"
命令生成 SSH 密钥对后,尝试将公钥添加到 GitHub 服务器时遇到以下错误:
Permission denied (publickey).
该错误发生在执行以下命令时:
cat ~/.ssh/id_rsa.pub | ssh makappt@github.com 'cat >> .ssh/authorized_keys'
以及在尝试连接 GitHub 时出现:
ssh -T makappt@github.com
解决方案步骤
1. 检查 SSH 密钥是否已添加到 SSH Agent
首先,确保您的 SSH 私钥 (id_rsa
) 已添加到 SSH Agent。执行以下命令:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
此命令将启动 SSH Agent 并将您的私钥添加到其中。
2. 将 SSH 公钥添加到 GitHub 账户
您需要将生成的公钥 (id_rsa.pub
) 添加到您的 GitHub 账户中。步骤如下:
-
复制公钥的内容:
cat ~/.ssh/id_rsa.pub
-
打开 GitHub,导航到 Settings -> SSH and GPG keys,然后点击 New SSH key。
-
将复制的公钥内容粘贴到 GitHub 中,并为该密钥命名。
-
保存密钥。
3. 测试 SSH 连接
将公钥添加到 GitHub 后,测试 SSH 连接:
ssh -T git@github.com
如果一切设置正确,您应该会看到如下提示:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
4. 检查文件权限
确保 SSH 密钥文件具有正确的权限。私钥 (id_rsa
) 应该只对您自己可读。可以通过以下命令设置正确的权限:
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
Permission denied (publickey).这个错误的原因我觉得可能是之前的文件权限不够导致的,但我懒得验证了,手动复制到GitHub即可
5. 验证 SSH 配置(可选)
如果您有多个 SSH 密钥或自定义配置,请验证 ~/.ssh/config
文件是否正确配置以连接 GitHub。可以添加如下配置:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa