完整修复 SSH 公钥认证(让 GitHub 认识你)
你执行 ssh -T [email protected] 提示 Permission denied (publickey),说明你本地虽然有 SSH 密钥,但未被 GitHub 认证,或者密钥没有被当前会话加载。别担心,按以下步骤一步步排查和修复即可。
🧰 完整修复 SSH 公钥认证(让 GitHub 认识你)
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've successfully authenticated... 说明认证成功,可以正常使用 SSH 协议克隆仓库了。
5️⃣ 重新安装 openclaw
cd ~/openclaw-test npminstall openclaw 现在应该不会再报 Permission denied 了。
🔁 如果你觉得配置 SSH 太麻烦,也可以直接用 HTTPS
如果你不常 push 代码,只是安装依赖,用 HTTPS 最简单,无需任何认证。执行以下命令移除 SSH 替换规则(如果之前设置过)并重试:
git config --global --unset url."https://github.com/".insteadOf npm config delete git# 如果之前错误设置过npm config setgit"git"cd ~/openclaw-test npminstall openclaw 此时 Git 会通过 HTTPS 访问 GitHub,公开仓库无需密码。
两种方法任选一种即可。推荐优先尝试 SSH,成功后以后 push 代码也方便。
⚠️ 常见问题排查
- 网络代理:如果你在公司内网,可能需要配置 HTTP 代理,或者改用 HTTPS 协议(无需 SSH)。
多密钥管理:如果你有多个 SSH 密钥(例如公司 GitLab 和个人 GitHub),需要在 ~/.ssh/config 中指定不同 Host 使用不同密钥。
示例配置:
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github 密钥权限过宽:SSH 要求私钥文件权限为 600,公钥 644。
chmod600 ~/.ssh/id_rsa chmod644 ~/.ssh/id_rsa.pub 请按上述步骤操作,SSH 认证问题应能解决。如果仍然失败,请将以下命令的输出粘贴给我,我会进一步协助:
ssh -vvv [email protected] ls -la ~/.ssh/ cat ~/.ssh/config # 如果存在现在你离成功安装 openclaw 只剩最后一步,加油!