GitHub SSH设置与Permission denied问题解决方法

时间:2024-10-26 10:25:44

1.配置个人信息

git config --global  "你的username"
git config --global  "你的邮箱"
  • 1
  • 2

2.生成公私密钥对

ssh-keygen -t rsa -C "邮箱地址"

# eg:
$ ssh-keygen -t rsa -C "example@"
Generating public/private rsa key pair.
# 这里需要注意 如果使用默认路径和名字为id_rsa则直接按下回车就可以,如果自定义其他名字还需要将前面的路径补全
# 我这里就是自定义的名字叫github
Enter file in which to save the key (/c/Users/Vergil/.ssh/id_rsa): /c/Users/Vergil/.ssh/github
# 直接回车
Enter passphrase (empty for no passphrase):
# 直接回车
Enter same passphrase again:
Your identification has been saved in /c/Users/Vergil/.ssh/github
Your public key has been saved in /c/Users/Vergil/.ssh/
The key fingerprint is:
SHA256:dgi9LeQ2qNnN/3lezjzbfF6Lam0TsVO0QGMpK23mY7c example@
The key's randomart image is:
+---[RSA 3072]----+
|            .+.  |
|       .   ..o.. |
|      . o . o o .|
|       = = = . o |
|      . S B   +  |
|     + = + + =   |
|    o . o . + + o|
|         . . EoB=|
|          oo=+o+@|
+----[SHA256]-----+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

3.在github中设置ssh

设置中找到SSH and GPG keys,之后点击右上角New SSH key

在这里插入图片描述

Title里随意填写自己想起的名字就好
Key里面填写刚才生成好的公钥里的内容
在这里插入图片描述
填写后点击 Add SSH key 即可

4.测试

ssh git@

# eg:
$ ssh git@
PTY allocation request failed on channel 0
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to  closed.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

看到欢迎语就证明配置成功了。

denied 解决

在ssh测试或者后续通过git pull或push会出现Permission denied问题

$ ssh git@
git@: Permission denied (publickey).
  • 1
  • 2

由于ssh默认找文件名为id_rsa的私钥,如果自定义别的私钥名,则多半是由于ssh配置没有找到自定义私钥的位置

  • windows10: 进入 C:/Users/你的用户名/.ssh 文件夹
  • linux/mac: 进入 ~/.ssh 文件夹

在这个目录下编辑config文件,如果没有则自行创建,不需要加后缀
写入

Host 
	HostName 
	IdentityFile ~/.ssh/github # 这里填写你的私钥路径
  • 1
  • 2
  • 3

保存后再次执行测试命令,即可发现已经可以连接上了