1.下载插件

1
npm install hexo-deployer-sftp --save

2.在ubuntu服务器上创建目录

使用ssh-keygen生成公钥与私钥,并添加公钥到ubutnu

生成方式其它教程都有就不再详细说,提交公钥的时候与github不同的是:github有指定位置填写公钥的字符串,而ubuntu服务器需要手动配置,放置到/{user_home}/.ssh/目录下authorized_keys这个文件中。

注意这个.ssh目录与你使用的用户名要相匹配。例如我使用的是root账户,那我的路径应该是/root/.ssh/。如果没有这个目录,请使用你的当前账户执行

1
ssh-keygen -t rsa

生成此路径,如果没有authorized_keys这个文件,手动新建此文件亦可。然后将本机生成的id_rsa.pub中的文本复制到此文件中。

配置_config.yml,deploy节点如下:

1
2
3
4
5
6
7
deploy:
type: sftp
host: 23.xxx.xxx.112 #ip地址
user: root #用户名
port: 27452 #端口号
remotePath: /var/www/blog
privateKey: C:/Users/lin/.ssh/id_rsa #指定私钥路径

此时使用hexo d即可发布到远程的ubuntu服务器中了。

配置deploy节点的时候有些需要注意的地方,privateKey需要填入的路径必须是反斜杠。

还有如果在发布的出现

1
hexo No such directory /var/www/blog/categories

这样的提示注意清空一下你的remotePath文件夹下的文件。

另外deploy不仅可以使用加入公钥的方式。也可以使用用户名匹配密码的方式,配置如下:

1
2
3
4
5
6
7
deploy:
type: sftp
host: 23.xxx.xxx.112 #ip地址
user: root #用户名
pass: xxxxxxxxxx #密码
port: 27452 #端口号
remotePath: /var/www/blog

好了,今天就到这里。