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

我尝试过的一件事是:

sftp sftp://USERXYZ:[email protected]

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

这是我的带有伪值的脚本:
sftp sftp://[email protected]
lcd C:\Users\PATHXYZ
cd PATHXYZ
put TESTFILE.txt
bye

希望您能帮助我,在此先感谢。

最佳答案

出于安全原因,OpenSSH sftp没有提供密码的选项。它甚至不接受sftp:// URL。

对于Linux版本,有很多变通方法和技巧:
How to run the sftp command with a password from Bash script?
我不确定Windows版本是否有常用的解决方法/hack。

虽然您不应该使用变通办法/hack。最好使用公共(public) key 身份验证而不是密码身份验证。
参见How to properly configure Win32-OpenSSH authentication

或使用另一个提供选项来提供密码的SFTP客户端。例如(my)WinSCP client接受您尝试使用的sftp:// URL。
有转换OpenSSH sftp script to WinSCP的指南。

关于windows - 在SFTP批处理文件中包含密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58814149/

10-16 20:55