这个错误提示表明你的 Git 客户端无法通过 SSH 访问 GitHub 仓库,因为缺少有效的 SSH 公钥。这通常发生在你没有配置 SSH 密钥或你的密钥没有被添加到 GitHub 账户中。
解决方案
1.生成 SSH 密钥(如果你还没有 SSH 密钥):
如果你还没有 SSH 密钥,可以使用以下命令生成一个新的 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这个命令会生成一个新的 SSH 密钥对(公钥和私钥),并提示你输入一个文件路径来保存密钥。你可以按 Enter
键来使用默认路径(通常是 ~/.ssh/id_rsa
)。
2.添加 SSH 密钥到 SSH 代理:
生成密钥后,添加私钥到 SSH 代理以便在当前会话中使用:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
3.将 SSH 公钥添加到 GitHub 账户:
需要将生成的公钥添加到你的 GitHub 账户中。首先,复制公钥内容:
cat ~/.ssh/id_rsa.pub
然后,登录到你的 GitHub 账户,导航到 Settings -> SSH and GPG keys,点击 New SSH key,将公钥粘贴到对应的文本框中,并保存。
4.测试 SSH 连接:
测试你是否可以成功通过 SSH 连接到 GitHub:
ssh -T git@github.com
如果配置正确,你应该会看到一条欢迎消息。
5.使用 SSH 克隆仓库:
确保你使用的是 SSH URL 克隆的仓库。如果你使用 HTTPS URL 克隆的仓库,可以通过以下命令更改远程仓库 URL:
git remote set-url origin git@github.com:your_username/your_repository.git
示例步骤
假设你已经生成了 SSH 密钥并添加到 GitHub,以下是完整的步骤:
# 生成 SSH 密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 启动 SSH 代理并添加私钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
# 复制公钥内容
cat ~/.ssh/id_rsa.pub
将公钥内容添加到 GitHub 后,测试连接:
ssh -T git@github.com
更改仓库远程 URL 为 SSH URL:
cd /path/to/your/repository
git remote set-url origin git@github.com:your_username/your_repository.git
然后再次尝试执行 git pull
:
git pull
通过这些步骤,你应该能够成功通过 SSH 访问 GitHub 仓库并执行 git pull
。