使用WinSCP和Windows批处理文件从单独的文件中读取SFTP凭据

时间:2019-06-13 13:18:29

标签: batch-file scripting sftp winscp

我正在编写一个批处理脚本以连接到具有私钥和密码的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

1 个答案:

答案 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