rsync 的 auth failed 错误排查
- @ERROR: auth failed on module input
- rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
rsync出现这个问题,说明前期的rsync服务搭建已经没问题了,
客户端已经可以连接上服务器
先贴上我自己一个rsync测试模块的配置文件
- [input]
- path = /home/user/input
- comment = PROGRAM INPUT DIR
- read only = no
- write only = yes
- list = no
- auth users = upload
- secrets file = /home/user/test/rsync/etc/test.pass
上传到rsync服务端input模块,可以使用下面的命令:
rsync -avSH ./testfile upload@192.168.1.100::input
---------------------------------
关于这个auth失败的问题,有以下可能的情况:
1、密码输入错误:
请再次确认你登录用户的密码无误
2、secrets file格式错误:
secrets file的文件格式是 upload:123456
表示upload用户的rsync密码是123456
3、配置文件写错:
最坑爹的一个,看看自己模块配置下面的auth users、secrets file有没写错
4、secrets file权限问题
服务端的secrets file权限必须是600,
可以使用chmod 600 /home/user/test/rsync/etc/test.pass
5、secrets file文件拥有者与rsync运行者
服务端rsync服务是以什么用户运行,则必须保证secrets file文件拥有者必须是同一个
假设root运行rsync --daemon,则secrets file的owner也必须是root
6、如果是以--password-file=file的方式附带密码
确保客户端密码文件格式无误,与服务端的密码文件不同,
客户端的不用加上用户名,即直接是 123456
7、以上都不行,可以尝试使用本地存在的用户名作为auth users
实测,这个可行。
密码不要跟本地用户的系统密码一样就行了。
-----------------------------
最后如果还搞不清是什么问题,可以尝试从下面的思路去摸索:
1、在rsync模块的配置文件里,把strict modes设置为no,禁用文件mode检验
2、ssh、telnet登录rsync服务端,查看服务器端的rsync日志,这个通常会比客户端的信息多
-------------------------
我们只需要努力,然后剩下的交给时间。