我正在编写一个批处理脚本以连接到具有私钥和密码的SFTP服务器。
我已经使用WinSCP开发了一个脚本。但是,如果使用WinSCP,则需要对密码短语进行硬编码,我认为这不是安全的实现方式。
是否可以将密码短语存储在文件中,并将该文件名作为参数传递,或者我们可以创建批处理脚本来实现此目的而无需使用WinSCP?
下面是我使用WinSCP实现的脚本。
批处理文件:
winscp.com /script=script.txt
以下是我在script.txt
文件中包含的内容:
option echo off
option batch on
option confirm off
open sftp://username:password@hostname -privatekey="filename" -passphrase "passphrase"
put "filename" /
exit
答案 0 :(得分:0)
引用WinSCP文章Protecting credentials used for automation的“脚本”部分:
在script中,您可以参考环境变量来替换实际的凭证。然后,您可以从设置这些变量的批处理文件中调用WinSCP。批处理文件本身然后用作“配置文件”。
例如,以下脚本(
example.txt
):可以从该批处理文件(“配置文件”)中调用open sftp://%USERNAME%:%PASSWORD%@example.com ...
:
@echo off set USERNAME=martin set PASSWORD=mypassword winscp.com /script=example.txt
(尽管您最好阅读whole article)