Login to server using WinSCP.com (cmd line) without password
我正在使用Windows计算机,并且已安装WinSCP。
我正在编写一个脚本,该脚本登录到服务器并下载文件。
我不想在脚本中存储帐户密码。 无论如何,我可以使用某种类型的主机密钥或专用密钥登录服务器。
是的,您可以使用公共密钥身份验证。但是为此,您仍然必须将私钥与脚本一起存储。通常,密钥使用密码短语加密。要自动进行登录,无论如何都必须将密码短语存储到脚本文件中(使用
请注意,如果您不确定所连接系统的物理和电子安全性,则几乎没有任何方法可以设置自动身份验证。如果您对安全性有把握,可以将密码存储在脚本文件中。
无论如何,您的问题大部分是重复的:
如何设置公钥认证?
有关WinSCP的详细信息,请参阅《设置SSH公钥身份验证》指南。
另请参阅WinSCP指南,以保护用于自动化的凭据。
我在Windows上遇到了类似的问题,因此我改用Putty代替http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
如果需要生成公共密钥,请使用:http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
我将公用密钥+密码提供给拥有SFTP服务器的任何人,以将其安装在他的身边。
我将私钥保存在一边,以免在" C: privatekey.ppk"上说
您无需在脚本上使用密码,但可以链接到计算机上必须具有的专用密码。
然后,当您要自动化批处理以从FTP服务器下载Pageant以便将私钥加载到会话http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe中时
然后使用PSFTP连接并执行以下操作http://the.earth.li/~sgtatham/putty/latest/x86/psftp.exe
因此,这是批处理文件的示例代码:
1 2 3 4 | !--Loading the key to session--! @C:\pageant.exe"C:\privatekey.ppk" !--Calling the PSFTP.exe with the uaser and sftp address + command list file--! @C:\psftp [email protected] -b C:\sftp_cmd.txt |
命令列表文件(sftp_cmd.txt)如下所示:
1 2 3 | mget"*.*" !--downloading every thing !--more commands can follow here close |
现在,您只需要将其安排在计划的任务中即可*我希望它像unix的cron一样简单。