我在 AIX 中有一个脚本,它运行 aftp
来与另一台运行 vsftpd 服务器的主机建立 FTPS 连接。
/usr/bin/ftp -snv host 8081 <<END_SCRIPT
debug
user anonymous pass
passive
binary
debug
quote pwd
quit
END_SCRIPT
当我从 shell 正常运行上述脚本时,它工作正常。
工作输出
Connected to host.
220 secure FTP service
Debugging on (debug=1).
---> AUTH TLS
234 Proceed with negotiation.
TLS Auth Entered.
TLS handshake succeeded, though Server signed it's own cert!
Certificate:
Data:
Version: 3 (0x2)
但如果我将相同的脚本添加到/etc/rc.d
或/etc/inittab
,该脚本无法进行 SSL 协商并失败。
从初始化脚本运行时出现错误输出
Connected to host.
220 secure FTP service
234 Proceed with negotiation.
Ftp configuration failed
ERROR Error setting BIO object for the control connection
FTP: Unable to authenticate to Server.
TLS Auth Entered.
Passive mode on.
421 Service not available, remote server has closed connection
我不确定这是否与初始化脚本执行期间不存在的任何环境设置有关。
任何帮助表示赞赏。
答案1
经过大量调试后,问题是在初始化脚本中启动时未设置环境变量,并且由于我未知的原因ftp
需要$HOME
设置变量。
将脚本更改为导出后$HOME
,ftp
工作正常。