Git SSH 公钥认证失败解决方案:配置密钥以访问 GitHub 仓库
本文解决了本地环境通过 SSH 访问 GitHub 仓库时因公钥认证失败导致的 npm 安装报错问题。核心步骤包括检查本地是否存在 SSH 密钥、生成新密钥、复制公钥内容、将其添加到 GitHub 账号设置中,并通过 ssh -T 命令验证连接。配置完成后重新执行 npm 安装命令即可正常拉取代码并完成任务。

本文解决了本地环境通过 SSH 访问 GitHub 仓库时因公钥认证失败导致的 npm 安装报错问题。核心步骤包括检查本地是否存在 SSH 密钥、生成新密钥、复制公钥内容、将其添加到 GitHub 账号设置中,并通过 ssh -T 命令验证连接。配置完成后重新执行 npm 安装命令即可正常拉取代码并完成任务。

这个 npm 安装报错,核心原因是本地环境通过 SSH 协议访问 GitHub 上的 libsignal-node.git 仓库时,SSH 公钥认证失败,导致 Git 没有权限拉取这个仓库的代码,最终 npm 执行 Git 命令返回了 128 错误码。
核心问题: [email protected]: Permission denied (publickey) 明确说明 GitHub 服务器无法通过本地的 SSH 公钥验证你的身份,拒绝了连接请求。
配置 Git SSH 密钥是从根本上解决这个问题的方案
先确认是否已有密钥(避免重复生成):
# macOS/Linux
ls -la ~/.ssh
# Windows PowerShell
type $HOME/.ssh/id_rsa.pub
# 若提示文件不存在,说明没有密钥
如果输出里有 id_rsa(私钥)和 id_rsa.pub(公钥),直接跳到步骤 3;没有则执行步骤 2。
# 替换为你注册 GitHub 的邮箱(关键!)
ssh-keygen -t rsa -b 4096 -C "你的 GitHub 邮箱@xxx.com"
执行后会提示: Enter file in which to save the key:直接回车,使用默认路径(~/.ssh/id_rsa); Enter passphrase:可选,设置密钥密码(按回车跳过,方便后续使用); Enter same passphrase again:同上,回车跳过。
# macOS/Linux
cat ~/.ssh/id_rsa.pub
# Windows PowerShell
type $HOME/.ssh/id_rsa.pub
复制输出的全部内容(以 ssh-rsa 开头,你的邮箱结尾,不要漏字符)。
执行以下命令,验证 GitHub 是否能识别你的密钥:
ssh -T [email protected]
如果输出'Hi 你的 GitHub 用户名! You've successfully authenticated, but GitHub does not provide shell access.'→ 配置成功; 如果仍报错,检查公钥是否复制完整、是否绑定到正确的 GitHub 账号。
npm install -g openclaw@latest
此时 npm 能通过 SSH 正常拉取 libsignal-node 仓库,安装会顺利完成。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online