本地环境通过 SSH 协议访问 GitHub 上的仓库时,SSH 公钥认证失败,配置 Git SSH 密钥

目录

  • 问题
  • 解决方案
      • [1. 检查本地是否已有 SSH 密钥](#1. 检查本地是否已有 SSH 密钥)
      • [2. 生成新的 SSH 密钥(全程回车即可)](#2. 生成新的 SSH 密钥(全程回车即可))
      • [3. 复制 SSH 公钥内容](#3. 复制 SSH 公钥内容)
      • [4. 将公钥添加到你的 GitHub 账号](#4. 将公钥添加到你的 GitHub 账号)
      • [5. 验证 SSH 连接是否成功(关键步骤)](#5. 验证 SSH 连接是否成功(关键步骤))
      • [6. 重新执行安装命令](#6. 重新执行安装命令)

问题

这个 npm 安装报错,核心原因是本地环境通过 SSH 协议访问 GitHub 上的 libsignal-node.git 仓库时,SSH 公钥认证失败,导致 Git 没有权限拉取这个仓库的代码,最终 npm 执行 Git 命令返回了 128 错误码。

核心问题:

git@github.com: Permission denied (publickey) 明确说明 GitHub 服务器无法通过本地的 SSH 公钥验证你的身份,拒绝了连接请求。

解决方案

配置 Git SSH 密钥是从根本上解决这个问题的方案

1. 检查本地是否已有 SSH 密钥

先确认是否已有密钥(避免重复生成):

bash 复制代码
# macOS/Linux
ls -la ~/.ssh
# Windows PowerShell
type $HOME/.ssh/id_rsa.pub  # 若提示文件不存在,说明没有密钥

如果输出里有 id_rsa(私钥)和 id_rsa.pub(公钥),直接跳到步骤 3;没有则执行步骤 2。

2. 生成新的 SSH 密钥(全程回车即可)

bash 复制代码
# 替换为你注册 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:同上,回车跳过。

3. 复制 SSH 公钥内容

bash 复制代码
# macOS/Linux
cat ~/.ssh/id_rsa.pub
# Windows PowerShell
type $HOME/.ssh/id_rsa.pub

复制输出的全部内容(以 ssh-rsa 开头,你的邮箱结尾,不要漏字符)。

4. 将公钥添加到你的 GitHub 账号

1.打开 GitHub 官网,登录你的账号;

2.点击右上角头像 → Settings(设置);

3.左侧菜单找到 SSH and GPG keys → 点击 New SSH key;

4.Title 填任意名称(比如 "本地电脑 - 安装 openclaw");

5.Key 粘贴刚才复制的公钥内容;

6.点击 Add SSH key(可能需要验证 GitHub 密码)。

5. 验证 SSH 连接是否成功(关键步骤)

执行以下命令,验证 GitHub 是否能识别你的密钥:

bash 复制代码
ssh -T git@github.com

如果输出" Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access. "→ 配置成功;

如果仍报错,检查公钥是否复制完整、是否绑定到正确的 GitHub 账号。

6. 重新执行安装命令

bash 复制代码
npm install -g openclaw@latest

此时 npm 能通过 SSH 正常拉取 libsignal-node 仓库,安装会顺利完成。

相关推荐
程序员小崔日记7 分钟前
一个命令救命:GitHub 爆火项目 thefuck,真把我笑服了
github·bash·开发者·宝藏项目
darkb1rd18 分钟前
career-ops:Go 语言驱动 AI 求职系统实战指南
开源·github·好物分享
HakunamatataWang1 小时前
怎么把github的本地的repo上传给gitea
github·gitea
AI成长日志2 小时前
【GitHub开源项目专栏】AI推理优化框架深度解析(下):TGI与TensorRT-LLM对比实战
人工智能·开源·github
特别关注外国供应商2 小时前
SSH 的 PrivX OT 工业安全远程访问 (ISRA) 被 分析机构 Industrial Cyber 认可
人工智能·网络安全·ssh·特权访问管理·工业安全远程访问·privx·ot 访问安全
Rabbit_QL2 小时前
【Git基础】03——Git 撤销与回退:改错了怎么办
大数据·git·elasticsearch
无限进步_2 小时前
【C++&string】寻找字符串中第一个唯一字符:两种经典解法详解
开发语言·c++·git·算法·github·哈希算法·visual studio
木下~learning2 小时前
零基础Git入门:Linux+Gitee实战指南
linux·git·gitee·github·虚拟机·版本控制·ubunt
zh_xuan2 小时前
修改远程仓库名以及和本地工程同步
git
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2026-04-07)
ai·大模型·llm·github·ai教程