你执行 ssh -T [email protected] 提示 Permission denied (publickey),说明你本地虽然有 SSH 密钥,但未被 GitHub 认证,或者密钥没有被当前会话加载。别担心,按以下步骤一步步排查和修复即可。
完整修复 SSH 公钥认证
1. 确认本地已有 SSH 密钥
运行:
ls -la ~/.ssh/
你应该能看到 id_rsa 和 id_rsa.pub(或 id_ed25519/id_ed25519.pub)这类文件。
- 如果存在:继续下一步。
如果不存在:需要生成新密钥(直接回车使用默认路径,密码可选)
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
或者
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"
2. 确保 ssh-agent 正在运行并添加密钥
先启动 ssh-agent:
eval "$(ssh-agent -s)"
输出类似 Agent pid 12345。
然后将你的私钥加入代理:
ssh-add ~/.ssh/id_rsa # 如果文件名不是 id_rsa,换成实际的私钥文件名
如果提示 Identity added,说明加载成功。
3. 将公钥添加到 GitHub 账户
复制公钥内容:
cat ~/.ssh/id_rsa.pub # 或 id_ed25519.pub
选中并复制全部(以 ssh-rsa 或 ssh-ed25519 开头,邮箱结尾)。
然后:
- 浏览器登录 GitHub SSH keys 设置页
- 点击 New SSH Key
- Title 任意填写(如'UOS work PC')
- Key 粘贴刚才复制的内容
- 点击 Add SSH Key
4. 再次测试 SSH 连接
ssh -T [email protected]
如果看到:
Hi 你的用户名!You successfully authenticated...

