安装rsync

在前端Hexo目录下输入

1
2
3
//安装rsync部署插件
npm install hexo-deployer-rsync --save

在Hexo配置文件中添加,注意代码缩进,各参数含义请参考Hexo官方文档

1
2
3
4
5
6
7
8
9
10
deploy:
type: rsync
host: <host> //主机ip
user: <user> //之前设置ssh的用户名
root: <root> //远程主机文件存储位置
port: [port] //ssh登陆端口,一般填写22
delete: [true|false] //是否删除远端存在而本地不存在的文件
args: //提供的其它rsync参数信息
verbose: [true|false] //输出详细信息,推荐true
ignore_errors: [true|false] //即使出现IO错误也进行删除,推荐false

在Hexo中使用rsync必须客户端和服务器都装有rsync,这里服务器以ubuntu为例子。

1
2
3
//服务端安装rsync
apt-get update
apt-get install rsync

经过以上配置,本地Hexo程序已经具备rsync同步的功能,但是每次同步还需要输入服务器密码。

登录服务器更加安全的方式是使用公私密钥进行验证,所以需要在本地ssh配置文件中配置默认私钥。

1
2
3
4
5
//配置默认私钥 
//"private_rsa"请更换成自己的私钥
cat private_rsa > ~/.ssh/id_rsa
//更改id_rsa权限为x00,文件必须对group和other不可读、不可写和不可执行
chmod go-rwx ~/.ssh/id_rsa

经过以上配置,不仅Hexo中的rsync可以使用私钥进行验证,SSH命令也无需输入-i参数就可以使用默认密钥。

注:

rsync有两种认证方式:

  1. rsync-daemon模式
    rsync-daemon监听873端口,两端都需要安装rsync,只需服务器端启用rsync服务(daemon)。

  2. SSH模式
    类似于scp,通过SSH隧道进行同步,两端都需要安装rsync,两端都不需要开启rsync服务(daemon)