我知道这不是推荐的做法。但我别无选择:
我必须设置一个 cron 任务,定期将文件上传到外部 SFTP 服务器(没有可用的 FTP,而且我只有一个用户名/密码但没有钥匙。
不过,我需要设置一个 cron,定期连接到该 sftp 并上传文件。
sftp <<EOF 放置文件名 出口 末梢血
因此将不起作用,因为 sftp 在评估 STDIN 之前要求输入密码。
我该怎么做才能将密码传递给 sftp?
再说一遍:我知道潜在的安全风险,但我真的别无选择,上传文件的服务器受到了相当好的保护。
答案1
将SSH_ASKPASS
环境变量指向在标准输出上打印出密码的自定义程序。
答案2
另一个选择是使用卷曲:
curl -u user:password -T file.tar sftp://example.com/home/user/