关于 sftp 报错 Unsupported key format 这件事

新年新气象,BUG好风光

前情提要

刚刚在用 hexo-deployer-sftp 插件部署博客的时候,突然报错了。

看到报错信息,才想起来我今天换地方写博客了,换了台电脑写,这台电脑上并没有我的部署公钥。

解决历程

于是我生成了一个部署公钥。

走的弯路

ssh-keygen -t rsa

但是,又报错了…

我tm…

然后,我怀疑是文件格式导致的问题(因为在常用的那台电脑上,我一直用的都是 .ppk 格式的公钥)

找了一下,需要用到 puttygen 来转换

恰巧,macOS 上的 Home-brew 有这个

brew install putty

装上之后,语法为

puttygen 输入文件 -o 输出文件

但其实上面做的都是徒劳

正解

实际上的解决办法就是把第一次报错的内容放 Duckduckgo 上一搜~

正解传送门

ssh-keygen -m PEM -t rsa

只需要在生成证书的时候加上一段 -m PEM,就能解决了

附一个我的 Deploy 配置(部分)

1
2
3
4
5
6
7
deploy:
- type: sftp
host: 1.1.1.1 #服务器地址
user: root #用户
remotePath: /usr/share/nginx/html #网站静态文件放置目录
port: 22 #服务器端口
privateKey: ./sftp/id_rsa #SSH密钥

完结撒花

就很完美