Permission denied (publickey), 问题解决方法
上班第一天 clone 项目,结果遇到这个 Permission denied (publickey),一脸懵逼。。。万能百度解决 使用 ssh key 这种方式进行 clone ,pull github 上面的项目,使用 git clone 或者 git pull origin master 出现 permission denied (publickey),原因是因为 ssh key 过期失效或者没有 ssh key。 那么解决这种的问题的方法就是重新生成一个新的 ssh key ,然后将这个 ssh key 添加到 github 账户上面,就可以了。
1.检查SSH key是否已经存在
用下面这个命令检查
ls ~/.ssh/
进行检查 id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步
2. 如果第1步中的SSH key不存在,生成一个新的SSH key
先:
cd ~/
命令如下:
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
其中,your_email@example.com要修改成你的邮箱地址。 回车后显示以下:
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\your_user_name/.ssh/id_rsa):
直接回车,会将key保存到默认文件中。 接着会输出:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
这两步是让你输入一个密码,以及确认密码,这个密码在你提交代码到Github时会用到【注意:记住这个密码,最简单的方式就是设置的和github账户登入密码一样,容易记住】 回车后就提示成功了:
Your identification has been saved in /Users/your_user_name/.ssh/id_rsa.
Your public key has been saved in /Users/your_user_name/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
到这一步,你会发现 /Users/your_user_name/.ssh/id_rsa.pub 文件已经生成了。
3. 将 SSH key 添加到 Github 账户中
第一步:复制公钥
方法一:直接在打开 id_rsa.pub 这个文件(这就是我们刚刚生成的 ssh key 文件),一般大致路径如下(每个人电脑不同,路径也会不同):系统盘符 —- 用户名 —- 计算机用户名 —-.ssh,在这里名就可以看到 id_rsa、id_rsa.pub 、known_host 这三个文件,打开 id_rsa.pub,将里面的内容原样全部复制起来。
方法二:进入 cd ~/.ssh 该文件,执行 cat id_rsa.pub 查看公钥,将输出来的那一串编码复制
第二步:去 github 上粘贴公钥
打开github.com,登入账户,点击头像旁边的下拉按钮,选择 settings —- ssh and gpg keys —— new ssh key —- 粘贴 —- 保存。如下图:
Title 可以随便写,这样SSH key 就添加到你的Github上了
转载:www.jianshu.com/p/eb742fe78…
转载:blog.csdn.net/xu112900516…
解决Enter passphrase for key每次输入密码问题
公钥 私钥
当我们关联好自己的 git 时,发现每次 pull 或 push 代码时会让我们重复性输入自己的密码,问题不是出在我们关联的不对,而是对 git 的公钥和私钥了解并不深,使用命令 ssh-keygen ,默认生成的公钥名为 id_rsa.pub ,私钥名为 id_rsa。
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
终端提示:Enter passphrase for key,表示我们对自己的 git 使用了私钥,在公钥的基础上又加了一道保障,所以会出现重复性输入密码,切换到文件 cd ~/.ssh 下会有 id_rsa,id_rsa.pub,known_hosts 三个文件,使用命令 rm id_rsa* 删除我们的私钥,cd .. 切换目录,执行 ssh-keygen -t rsa -b 2048 -C "your_email@example.com" 一路回车键,出现
+---[RSA 2096]----+
|.o ....+ |
|o .. . .=o..o |
|.E. . .. oo . |
|=.o . |
|.* S o o |
|. o . . + o . |
|..o+ = o |
|..=o=.* . |
|..+B=X+o |
+----[SHA256]-----+
然后重新进入 cd ~/.ssh 该文件,执行 cat id_rsa.pub 将出来的那一串编码复制粘贴到你的远程 git 上建立关联,关联方法同上第3步,完成。