换电脑了,clone 一下 github的项目竟然报错git@github.com: Permission denied (publickey).

408 阅读3分钟

前言👁

换电脑了,clone 一下 github的项目竟然报错 git@github.com: Permission denied (publickey).,这你受得了吗?

The authenticity of host 'github.com (20.205.243.166)' can't be established.

ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.

This key is not known by any other names.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.

git@github.com: Permission denied (publickey).

致命错误:无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。
无法建立主机‘github.com(20.205.243.166)’的真实性。
ED25519密钥指纹为SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU。
这个键没有任何其他名称。
您确定要继续连接(是/否/[指纹])吗?是
警告:永久添加‘github.com’ (ED25519)到已知主机列表。
git@github.com:权限被拒绝(公钥)。
致命错误:无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

碰到这种问题,其实就是换了电脑💻了,然后github跟我们这台新的电脑没有任何桥梁,不是每台机器都能去克隆东西,也就是要钥匙🔑才能进行操作。

看钥匙

~/.ssh 下个utool蛮好的,然后~/.ssh前往文件夹。

或者用一句命令行在terminal终端上输一下:ls -al ~/.ssh

去看里面有没有两个文件:第一个是id_rsa,这是私钥;第二个是id_rsa.pub,这是公钥。

这里要的是公钥去放到github里面,把这个桥梁给连接起来,搭建起来。

有的话,就不用建;没有的话,创一下,在终端敲这句命令:
ssh-keygen -t rsa -C "咱的邮箱地址"

命令分解:

1、ssh-keygenOpenSSH提供的密钥生成工具。

2、-t rsa:指定密钥类型为RSA算法。

3、- C "邮箱": 为密钥添加注释(通常是邮箱,会显示在公钥末尾)。

image.png

执行效果:

  1. 默认会在 ~/.ssh/ 目录生成两个文件:

    • id_rsa(私钥,必须保密)
    • id_rsa.pub(公钥,可对外提供)
  2. 生成时会询问:

    • 密钥保存路径(直接回车用默认路径)
    • 密码短语(可选,增加一层保护)

典型用途:

# 更现代的替代方案(推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 生成后可将公钥添加到:
# 1. GitHub/GitLab 的 SSH Keys 设置
# 2. 服务器的 ~/.ssh/authorized_keys 文件

注意事项:

  • 如果使用 RSA 算法,建议至少指定 -b 4096 密钥长度
  • 邮箱注释只是标识用途,不会影响密钥功能
  • 私钥权限应设为 600(chmod 600 ~/.ssh/id_rsa

到github

Settings -> 点SSH and GPG keys

This is a list of SSH keys associated with your account. Remove any keys that you do not recognize.

这是与您的帐户关联的SSH密钥列表。删除任何您不认识的密钥。

New SSH key

image.png

可以双击打开,也可以直接命令行cat一下。

cat的意思全称concatenate(连接),比如cat ~/.ssh/id_rsa.pub,然后就可以看到终端显示了id_rsa.pub的全部内容了。

接着复制到githubssh key里面,保存就可以了。


到此,结束,重新去git clone,不行你来打我。