Rclone FTP远程连接失败:密码解密输入过短问题排查
问题诊断与解决方案
错误原因
你遇到的NewFS decrypt password: input too short when revealing password错误,核心原因是Rclone默认将远程字符串中的pass参数识别为加密后的密码,而你传入的是明文密码,Rclone尝试解密时发现长度不符合加密格式要求,因此触发报错。
当前连接方式的问题
你的测试命令和Shell脚本中,直接在FTP远程字符串里用pass=$FTP_PASS传递明文密码,不符合Rclone对pass参数的定义规则,导致解密逻辑异常。
修复方案
方案1:用pass_plain传递明文密码
将远程字符串中的pass替换为pass_plain,明确告知Rclone这是明文密码,无需执行解密操作:
# 修改后的测试命令 rclone lsd ":ftp,host=usftp21.com,user=FTPTEST,pass_plain=FTPTEST:" # Shell脚本对应部分修改 FTP_REMOTE=":ftp,host=$FTP_HOST,user=$FTP_USER,pass_plain=$FTP_PASS:$FTP_FILE" rclone copy ":ftp,host=$FTP_HOST,user=$FTP_USER,pass_plain=$FTP_PASS:md5.txt" ./temp_md5 --quiet rclone copy ":ftp,host=$FTP_HOST,user=$FTP_USER,pass_plain=$FTP_PASS:$FTP_FILE" ./temp_md5 --quiet
方案2:通过命令行参数传递密码
把密码从远程字符串中剥离,改用--ftp-pass参数单独传递,避免远程字符串格式冲突:
# 修改后的测试命令 rclone lsd ":ftp,host=usftp21.com,user=FTPTEST:" --ftp-pass "FTPTEST" # Shell脚本对应部分修改 FTP_REMOTE=":ftp,host=$FTP_HOST,user=$FTP_USER:$FTP_FILE" rclone copy ":ftp,host=$FTP_HOST,user=$FTP_USER:md5.txt" ./temp_md5 --quiet --ftp-pass "$FTP_PASS" rclone copy ":ftp,host=$FTP_HOST,user=$FTP_USER:$FTP_FILE" ./temp_md5 --quiet --ftp-pass "$FTP_PASS"
方案3:使用Rclone配置文件(推荐)
运行rclone config启动交互式配置向导,添加FTP远程时输入的密码会被加密存储在配置文件中,后续只需通过远程名称调用,更安全且避免格式问题:
# 启动配置向导 rclone config # 配置完成后,假设远程名称为mytestftp,测试命令变为 rclone lsd mytestftp: # Shell脚本对应部分修改 rclone copy mytestftp:md5.txt ./temp_md5 --quiet rclone copy mytestftp:$FTP_FILE ./temp_md5 --quiet
内容的提问来源于stack exchange,提问作者Anthony Santana
相关产品推荐
相关产品推荐

