git 解决 permission denied (publickey)

3,408 阅读1分钟

今天更新一下项目的库,尴尬的发现

permission denied (publickey)

原因

  • 没有 ssh key
  • ssh key过期失效

进入存储证书的文件夹

cd ~/.ssh/

查看公钥

more id_ras.pub 

如果有的话基本是 ssh key 失效,没有的话就更不用说了~

解决方法

重新生成一个新的 ssh key ,将新的ssh key添加到 github

生成

生成指令如下

ssh-keygen  -t rsa -b 2048

回车后会看见

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/XXXX/.ssh/id_rsa):

如果已经存在了,就会提示是否覆盖

/Users/XXXX/.ssh/id_rsa already exists.
Overwrite (y/n)?

下一步会看到设置密码,这个密码在你提交代码到git时会用到。

Enter passphrase (empty for no passphrase):

下一步是确认密码

Enter same passphrase again:

生成成功

Your identification has been saved in /Users/XXXX/.ssh/id_rsa.
Your public key has been saved in /Users/XXXX/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX@XXXX.local
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+

添加

cd ~/.ssh/
more id_ras.pub

把输出的 ssh 记下来

现在 git clone 需要输入密码,如果关联了很多库就要输入很多次,解决方法是把 id_rsa 添加到 keychain

ssh-add -K ~/.ssh/id_rsa