Hexo提交出现Permission denied (publickey)

环境说明

macOS Sierra 10.12.1
node v6.5.0

问题

参考 hexo-doc 搭建好blog后

为部署到github使用如下指令,去安装hexo-deployer-git插件

1
$ npm install hexo-deployer-git --save

如果使用ssh-keygen生成RSA证书不选择默认的id_rsa名时,提交有时会报公钥错误

1
2
3
FATAL Error: Permission denied (publickey).  
fatal: Could not read from remote repository.
...

解决方法

步骤 1

1
2
// adds private key identities to the authentication agent
$ ssh-add path/to/rsa_private_key

然后再进行提交

步骤 2

原因: 重启后,又会提示该错误

限制: 执行ssh-add会有一个要求输入密码的交互过程

  • brew安装 expect
1
$ brew install homebrew/dupes/expect
  • 新建一个shell脚本 命名为 .blog_ssh-add.sh
1
2
3
4
5
#!/usr/local/bin/expect -f
spawn /usr/bin/ssh-add /Users/Jason/.ssh/github_home
expect "Enter passphrase for /Users/Jason/.ssh/github_home:"
send "111111\n\n" ## 密码
interact
  • 添加可执行权限
1
$ sudo chmod +x .blog_ssh-add.sh

当报错就会执行~/.blog_ssh-add.sh 会自动输入密码,
然后再提交

参考