Windows环境下github提交时出现Permission denied (publickey)问题

今天在使用github命令时,出现Permission denied (publickey)错误,这里做下记录。

这个错误发生在添加到远程仓库时;

原因是:使用ssh连接github时,出现问题;

解决办法及操作步骤:

  1. 检查本地是否存在 SSH keys

(1).打开Git Bash

(2). 输入 ls -al ~/.ssh ,查看SSH keys是否存在

	ls -al ~/.ssh

(3). 查看目录,是否存在 a public SSH key

	注:public SSH key的文件名一般默认如下:
	id_dsa.pub
	id_ecdsa.pub
	id_ed25519.pub
	id_rsa.pub
  1. 生成一个新的SSH keys,并且添加到ssh-agent中

第一步,生成ssh

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

第二步,按enter键(回车键)
在这里插入图片描述

第三步,输入密码
在这里插入图片描述

第四步,确定ssh-agent在运行

eval $(ssh-agent -s)
在这里插入图片描述

第五步,把private SSH加入到ssh-agent中。
如下图,一般情况下,这个步骤不需要操作,但是如果你的文件名比较与众不同,则需要进行如下操作。

在这里插入图片描述

ssh-add ~/.ssh/id_rsa

3.把SSH key 添加到github账号中去.

首先执行下面命令(复制id_rsa.pub文件中的内容):

clip < ~/.ssh/id_rsa.pub
注意:这里也可以直接到.ssh文件夹下直接找到id_rsa.pub文件里的内容进行复制

然后,如下图:settings->ssh and gpg keys->new ssh key ,把文件粘贴,保存即可
在这里插入图片描述
在这里插入图片描述

上面的问题不同的情况还可以有其他解决办法,这里只列举一个
参考资料:https://help.github.com/articles/connecting-to-github-with-ssh/

### 解决 Git 推送遇到的 `Permission denied (publickey)` 问题 当遇到 `git@github.com: Permission denied (publickey)` 错误,通常是因为本地 SSH 密钥配置不当或不存在于 GitHub 账户中。以下是详细的解决方案: #### 检查现有 SSH 密钥 首先确认是否有现有的 SSH 密钥对存在。通过运行以下命令来查看是否存在默认位置下的密钥文件: ```bash ls -al ~/.ssh ``` 如果发现有名为 `id_rsa` 和 `id_rsa.pub` 的文件,则表示已经有一对 RSA 类型的 SSH 密钥。 如果没有找到合适的密钥对或者不确定当前使用的是否正确,可以继续创建新的 SSH 密钥对并将其添加到 GitHub 上去[^1]。 #### 创建新的 SSH 密钥 为了生成一个新的 SSH 私钥及其对应的公钥,可以在终端执行如下指令(假设邮箱为 user@example.com): ```bash ssh-keygen -t rsa -b 4096 -C "user@example.com" ``` 这会引导用户输入保存路径,默认情况下可以直接按回车键接受建议的位置;之后还会询问 passphrase 设置,可以根据个人需求决定是否设置密码保护[^2]。 #### 添加 SSH 密钥至 ssh-agent 中 启动 `ssh-agent` 并加载刚刚生成好的私钥进去以便后续操作能够顺利进行: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` #### 将公钥添加给 GitHub 复制 `.pub` 文件里的内容并通过浏览器登录 GitHub 后,在账户设置页面的安全选项里粘贴上去完成关联工作。具体步骤如下所示: - 打开 [GitHub Settings](https://github.com/settings/keys) - 点击左侧菜单栏中的 **SSH and GPG keys** - 点击右上角绿色按钮 **New SSH key** - 把之前拷贝的内容填入 Key 字段内,并给予适当描述名称后点击底部提交按钮即可[^3] #### 测试连接状态 最后一步就是验证能否成功建立与服务器之间的安全通道了。只需简单地尝试一次 git 命令交互就能知道一切正常与否: ```bash ssh -T git@github.com ``` 预期输出应类似于这样:“Hi username! You've successfully authenticated...”,说明现在已经有权访问远程仓库资源了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值