在SFTP批处理文件中包含密码。

3

我需要使用内置的Windows sftp功能和一个自动输入登录数据、用户名和密码的.bat文件来连接我们的SFTP服务器。我已经尝试了所有方法,但就是无法找到正确的方法。无论我尝试什么,它总是要求我手动输入密码。我想避免这种情况。一旦运行,它应该自动完成整个SFTP过程。

我尝试过的一件事是:

sftp sftp://USERXYZ:PASSWORDXYZ@myftp.COMPANY.com

但是这仍然要求我手动输入密码,更糟糕的是,它认为用户是USERXYZ:PASSWORDXYZ而不仅仅是USERXYZ

这是我的脚本,带有虚拟值:

sftp sftp://USER@myftp.COMPANY.com
lcd C:\Users\PATHXYZ
cd PATHXYZ
put TESTFILE.txt
bye

希望你能帮助我,提前感谢。


1
这是不允许的...也有很好的理由,安全性。如果您从命令行中运行密码,则可以在询问正在运行的服务/进程时访问该密码。 - Gerhard
1个回答

3
OpenSSH的sftp没有提供密码选项是出于安全原因。它甚至不接受sftp:// URL。
Linux版本有很多解决方法和技巧: 如何从Bash脚本中使用密码运行sftp命令? 我不确定Windows版本是否有常用的解决方法或技巧。
虽然你不应该使用解决方法或技巧。最好使用公钥身份验证而不是密码身份验证。 请参阅如何正确配置Win32-OpenSSH身份验证
或者使用另一个提供密码选项的SFTP客户端。例如,(我的) WinSCP客户端 接受您尝试使用的 sftp:// URL。有一个将 OpenSSH sftp 脚本转换为WinSCP 的指南。

2
正确!Windows 10 自带 OpenSSH,因此只需一些知识,便可为 sftp 设置 ssh 密钥。 - Gerhard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接