解决在vscode中已登录了Git,但是pull/push仓库报错Permission denied (publickey).

报错:Permission denied (publickey).

报错详细:

> git pull --tags origin main
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

原因:可能是SSH秘钥配置不正确或者没有正确添加到你的GitHub账户

解决

确认SSH密钥

首先,请确保你在本地机器上配置了正确的 SSH 密钥。你可以使用以下命令检查是否存在 SSH 密钥:

ls -al ~/.ssh

确保你有一个命名为 id_rsa(私钥)和 id_rsa.pub(公钥)的文件。
如果没有就重新生成SSH密钥

重新生成SSH密钥

在终端中运行以下命令来生成新的 SSH 密钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

然后按照提示设置一个新的 SSH 密钥,并将新的公钥添加到你的 GitHub 账户。

添加 SSH 密钥到 GitHub

确保你已将公钥(id_rsa.pub)的内容添加到你的 GitHub 账户。你可以将公钥内容复制,然后在 GitHub 账户设置中的 SSH 密钥部分添加它。

确认 Git 配置

在终端中运行以下命令,确保你的 Git 配置中有正确的用户名和邮箱:

git config --global user.name
git config --global user.email

如果没有设置,可以使用以下命令进行设置:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

验证远程仓库链接

确保你在 VS Code 中使用了正确的远程仓库链接。可以使用以下命令来查看当前配置的远程仓库链接。

git remote -v

在 VS Code 中拉取

在 VS Code 中,可以按照以下步骤拉取远程仓库:

  • 打开左侧的源代码管理图标(Ctrl + Shift + G),或者使用命令面板(Ctrl + Shift + P)并搜索 “Git: Pull”。
  • 点击上方的 “…”(更多操作) 按钮,然后选择 “Pull”。
  • 选择你想要拉取的远程分支,然后点击 “OK”。

尝试重新克隆仓库再拉取

如果以上步骤无法解决问题,你可以尝试删除本地仓库中的 SSH 远程链接,然后重新克隆仓库。在终端中运行以下命令:

git remote rm origin
git remote add origin git@github.com:username/repository.git
git fetch origin

将 username/repository.git 替换为你的实际用户名和仓库名。

补充

检查防火墙和代理设置

有时防火墙或代理设置也可能影响到 SSH 连接。确保你的网络环境没有阻止 SSH 连接到 GitHub。

使用 SSH Agent

如果使用了 SSH Agent(例如 ssh-agent 或 ssh-pageant),确保已经将 SSH 密钥添加到代理中,这样在与 GitHub 进行通信时就不需要重新输入密码。

Mac上vscode每次git操作都要输入本地ssh密码

Enter passphrase for key '/Users/xxx/.ssh/id_rsa':

ssh-add 这个命令不是用来永久性的记住你所使用的私钥的。实际上,它的作用只是把你指定的私钥添加到 ssh-agent 所管理的一个session 当中。而 ssh-agent 是一个用于存储私钥的临时性的 session 服务,也就是说当你重启之后,ssh-agent服务也就重置了。
实际使用中也的确是这样的,重启terminal就失效了

ssh-add -K ~/.ssh/id_rsa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值