permission denied (publickey)问题的解决 和 向github添加ssh key

使用ssh key这种方式进行clone ,pull github上面的项目,使用 git clone或者git pull origin master出现permission denied (publickey),原因是因为ssh key过期失效或者没有ssh key。 那么解决这种的问题的方法就是重新生成一个新的ssh key ,然后将这个ssh key添加到github账户上面,就可以了。

(1) 检查SSH key是否已经存在

用这个命令 ls ~/.ssh/
进行检查 id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。

(2)如果第1步中的SSH key不存在,生成一个新的SSH key

命令如下:

ssh-keygen -t rsa -b 2048 -C “your_email@example.com”
其中,your_email@example.com要修改成你的邮箱地址。
回车后输出如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):
其中,xxx是你的用户名,直接回车,会将key保存到默认文件中。
接着会输出:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
这两步是让你输入一个密码,以及确认密码,这个密码在你提交代码到Github时会用到【注意:记住这个密码,最简单的方式就是设置的和github账户登入密码一样,容易记住】
回车后就提示成功了:
Your identification has been saved in /home/xxx/.ssh/id_rsa.
Your public key has been saved in /home/xxx/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
到这一步,你会发现 ~/.ssh/id_rsa.pub 文件已经生成了。

(3)将SSH key添加到ssh-agent

先确认ssh-agent处于启用状态:
eval “$(ssh-agent -s)”

输出类似于:

Agent pid 32070

然后将SSH key添加到ssh-agent:

ssh-add ~/.ssh/id_rsa

这时又会要你输入密码:

Enter passphrase for /home/xxx/.ssh/id_rsa:
输入刚才记起来的密码,然后回车

(4)将SSH key添加到Github账户中

这一步,不用像网上说的那么复杂,直接在打开id_rsa.pub这个文件(这就是我们刚刚生成的ssh key文件),一般大致路径如下(每个人电脑不同,路径也会不同):系统盘符 —- 用户名 —- 计算机用户名 —-.ssh ,在这里名就可以看到 id_rsa、id_rsa.pub 、known_host这三个文件,打开id_rsa.pub,将里面的内容原样全部复制起来。打开github.com,登入账户,点击头像旁边的下拉按钮,选择settings —- ssh and gpg keys —— new ssh key —- 粘贴 —- 保存。如下图:

(5)保存后,就能在上面看见刚建立的ssh key,之后在git 客户端就能够使用了

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当在使用Git命令时出现"Permission denied (publickey)"错误时,通常有两种可能的原因。首先,这个错误可能是由于客户端和服务端未生成或配置正确的SSH key所致。其次,可能是由于客户端和服务端的SSH key不匹配引起的。 要解决这个问题,首先要确保在客户端和服务端都生成了正确的SSH key,并将公钥添加GitHub账户的SSH keys中。可以使用以下命令生成SSH key: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 然后将生成的公钥(位于用户目录下的`.ssh`文件夹中的`id_rsa.pub`文件)添加GitHub账户的SSH keys中。 如果已经生成了SSH key,并且公钥也已添加GitHub账户中,但仍然出现"Permission denied (publickey)"错误,那么可能是由于客户端和服务端的SSH key不匹配。可以通过以下步骤来解决这个问题: 1. 检查客户端和服务端的SSH key是否匹配。可以使用以下命令来检查: ``` ssh -T git@github.com ``` 如果显示"Hi username! You've successfully authenticated, but GitHub does not provide shell access.",则表示SSH key匹配。如果显示"Permission denied (publickey)",则表示SSH key不匹配。 2. 如果SSH key不匹配,可以尝试重新生成客户端和服务端的SSH key,并将公钥添加GitHub账户的SSH keys中。 通过以上步骤,应该能够解决GitHub出现"Permission denied (publickey)"错误的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [github和Coding使用Git出现:Permission denied (publickey).解决办法](https://blog.csdn.net/SOLar7SysteM/article/details/125723884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [解决git@github.com: Permission denied (publickey). Could not read from remote repository](https://blog.csdn.net/qq_37185371/article/details/103302004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值