前言👁
换电脑了,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-keygen:OpenSSH提供的密钥生成工具。
2、-t rsa:指定密钥类型为RSA算法。
3、- C "邮箱": 为密钥添加注释(通常是邮箱,会显示在公钥末尾)。
执行效果:
-
默认会在
~/.ssh/目录生成两个文件:id_rsa(私钥,必须保密)id_rsa.pub(公钥,可对外提供)
-
生成时会询问:
- 密钥保存路径(直接回车用默认路径)
- 密码短语(可选,增加一层保护)
典型用途:
# 更现代的替代方案(推荐)
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。
可以双击打开,也可以直接命令行cat一下。
cat的意思全称concatenate(连接),比如cat ~/.ssh/id_rsa.pub,然后就可以看到终端显示了id_rsa.pub的全部内容了。
接着复制到github的ssh key里面,保存就可以了。
到此,结束,重新去
git clone,不行你来打我。