关于身份验证:使用WinSCP.com(cmd行)登录服务器,无需密码

Login to server using WinSCP.com (cmd line) without password

我正在使用Windows计算机,并且已安装WinSCP。

我正在编写一个脚本,该脚本登录到服务器并下载文件。

我不想在脚本中存储帐户密码。 无论如何,我可以使用某种类型的主机密钥或专用密钥登录服务器。


是的,您可以使用公共密钥身份验证。但是为此,您仍然必须将私钥与脚本一起存储。通常,密钥使用密码短语加密。要自动进行登录,无论如何都必须将密码短语存储到脚本文件中(使用-passphrase开关)。因此,即使有人访问了您的计算机,他/她仍然能够像使用密码一样窃取您的身份。虽然有优势。您可以有多个键(而只有一个密码)。如果您对脚本使用特殊密钥,并且密钥曾经被盗用,则可以在保留其他密钥的同时撤消该密钥。

请注意,如果您不确定所连接系统的物理和电子安全性,则几乎没有任何方法可以设置自动身份验证。如果您对安全性有把握,可以将密码存储在脚本文件中。

无论如何,您的问题大部分是重复的:
如何设置公钥认证?

有关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一样简单。