前言
想必使用github和hexo搭建博客的同学们或多或少的都会遇到一些让自己抓头的报错信息。最近我就遇到了两次关于权限问题的报错,所以写这篇文章也是让自己涨涨记性吧🙄
问题描述
我遇到的权限问题是这样的
首先我是之前有设置SSH的 ,并且使用github客户端和github上都可以正常使用,唯独是当我想在Hexo上发布文章时会出现下面的状况,真真的是使我几天都百思不得其解啊。
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上。
具体操作
打开终端,输入:
ls -al ~/.ssh
这个命令会列出你SSH账户里现存的SSH key,当然如果你之前就没有设置过那么就是空的。因为我之前是设置过的所以会罗列出之前设置的SSH。
在文件夹中找到.SSH文件并删除
再次打开终端,先重复第一步检查是否删除了,然后开始重新设置
生成密匙
- 输入:
ssh-keygen -t rsa -C "你的邮箱地址"
这个命令会生成一个以你的邮箱为标签的SSH key . - 然后bash会显示:
Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):
- 直接回车,然后出现:
Enter passphrase (empty for no passphrase):
如果你不怕麻烦可以设置一个,但我的建议是不要设置,简化操作。 - 直接回车,然后出现:
Enter same passphrase again:
再次回车即可。此时你会看到:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
......你的邮箱地址```
加入Agent
- 输入:
ssh-agent -s
- 当出现:
Agent pid =XXX
- 之后再输入:
ssh-add ~/.ssh/id_rsa
到此为止,在本地我们就成功生成了一个新的SSH key.
将SSH key 添加到GitHub
- 打开自己的GitHub,点击自己头像找到倒数第二项的settings,然后找到侧栏上SSH and GPG keys .
- 点击new SSH
- 复制id_rsa.pub中的所有内容到Key框中,在Title框中输入方便自己记忆的名字。
当网页显示添加成功后,就已经完成了全部的操作。
最后
-
打开终端,输入:
ssh -T git@github.com
-
bash 会显示:
RSA key fingerprint is ......
Are you sure you want to continue connecting (yes/no)?```
-
输入yes 会出现如下提示:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
如果成功看见此提示,说明你已经配置好了