问题描述

使用ssh方式从github上git clone时报错Permission denied (publickey)

SSH连接过程

  1. 本地向远程服务端发起连接
  2. 服务端随机生成一个字符串发送给发起登录的本地端
  3. 本地对该字符串使用私钥 ~/.ssh/id_rsa 加密发送给服务端
  4. 服务端使用公钥 ~/.ssh/id_rsa.pub 对私钥加密后的字符串进行解密
  5. 服务端对比解密后的字符串和第一次发送给客户端未加密的字符串,若一致则判断为登录成功

解决方案

  1. ssh-keygen -t rsa

    该命令产生一个公钥文件和一个私钥文件,默认保存在 ~/.ssh/ 目录下

  2. 在github的 setting - SSH and GPG keys 中新建一个 SSH key

    Title:任意

    Key:复制公钥文件id_isa.pub中的文本到这里

  3. git clone …

    成功!