最近有不少OpenClaw用户在升级到最新版本时遇到了一个棘手的问题:执行openclaw update命令后,系统报出SSH认证错误,导致更新失败。这个问题看似复杂,但其实有明确的解决方案。今天我们就来详细解析这个问题的根源,并提供两种不同场景下的解决方案。当你满怀期待地执行openclaw update准备升级到3.13版本时,却看到了这样的错误信息:npm error code 128npm error An unknown git error occurrednpm error command git --no-replace-objects ls-remote ssh://git@github.com/whiskeysockets/libsignal-node.gitnpm error git@github.com: Permission denied (publickey).npm error fatal: couldn't read from remote repository.npm error Please make sure you have the correct access rightsnpm error and the repository exists.
这个错误让很多用户感到困惑,明明之前都能正常更新,为什么突然就失败了?要理解这个问题,我们需要先了解openclaw update背后的机制。这个命令实际上是在调用npm update -g openclaw,而在更新过程中,npm会重新解析整个依赖树。问题的关键在于其中一个更新依赖——libsignal-node。这个依赖是通过SSH协议直接从GitHub仓库拉取的(ssh://git@github.com/whiskeysockets/libsignal-node.git)。当你的系统环境中没有配置有效的SSH公钥认证时,GitHub就会拒绝访问,从而导致"Permission denied (publickey)"错误。简单来说,就是你的电脑没有向GitHub证明"你是谁",所以GitHub不让你访问私有或需要认证的仓库。如果你急需完成当前的更新,可以采用临时解决方案,强制Git使用HTTPS协议而不是SSH协议来拉取依赖:1. 全局配置 Git,将 GitHub SSH 地址转为 HTTPSgit config --global url."https://github.com/".insteadOf ssh://git@github.com/git config --global url."https://github.com/".insteadOf git@github.com:
执行完这些命令后,你应该能看到"Updating OpenClaw... ✓"的成功提示,并且openclaw --version会显示更新后的版本号(如2026.3.15)。(看正常情况只需要19秒完成openclaw升级)这种方法的优点是立竿见影,不需要复杂的配置就能完成当前的更新任务。但缺点是每次遇到类似问题都需要重新配置,属于"治标不治本"的方案。为了彻底解决这个问题,建议配置完整的SSH认证。这样不仅能解决当前的OpenClaw更新问题,还能为以后的其他Git操作提供便利。在macOS终端中执行以下命令生成新的SSH密钥:生成 ed25519 格式密钥(替换为你的 GitHub 邮箱)ssh-keygen -t ed25519 -C "your-email@example.com"
启动 SSH 代理(macOS 专用,持久化代理)ssh-add ~/.ssh/id_ed25519
pbcopy < ~/.ssh/id_ed25519.pub
然后打开GitHub网站,进入Settings → SSH and GPG keys → New SSH key,将刚才复制的公钥粘贴进去并保存。如果看到类似"Hi your-github-username! You've successfully authenticated..."的输出,说明SSH配置成功了。git config --global --unset url."https://github.com/".insteadOf
重新执行更新openclaw update就不会报错啦我们的建议是:如果你现在急需完成更新,先用临时方案解决问题;等有空的时候,再按照长期方案的步骤进行完整配置。这样既能满足当前的紧急需求,又能为未来的开发工作打下良好的基础。SSH认证问题在开发者日常工作中很常见,理解其原理并掌握解决方案,不仅能解决OpenClaw的更新问题,还能帮助你更好地管理各种Git仓库和依赖。希望这篇文章能帮你顺利解决当前的困扰,也欢迎在评论区分享你的经验和遇到的其他问题!小贴士配置好SSH后,你会发现不仅OpenClaw更新顺畅了,其他需要Git操作的工具和项目也会变得更加高效。