如何在excel vba中使用hostkey从sftp下载文件

时间:2019-06-21 09:03:45

标签: vba sftp downloadfile

我正在使用“ WinSCP脚本接口.NET包装器”删除该部分,因为此处不需要。在下面,您将找到VBA Excel中的一段代码,用于从SFTP下载特定文件。希望这可以节省时间给某人。

Sub test()

Dim FSO As New FileSystemObject, FileOut As TextStream, FTPcommand As 
String

Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileOut = 
FSO.CreateTextFile("C:\Users\Bunia\Desktop\FTP_commands.txt", True, 
False)

FileOut.WriteLine ("open sftp://UserName@HostPageName.com -hostkey=""ssh- 
rsa 2048 +/ ........ ="" - 
privatekey=""C:\Users\Bunia\Desktop\id_rsa.ppk""")
FileOut.WriteLine ("lcd ""C:\Users\Bunia\Desktop\Download Folder""")
FileOut.WriteLine ("get ABCfile.csv")
FileOut.WriteLine ("exit")
FileOut.Close
Call Shell("C:\Program Files (x86)\WinSCP\WinSCP.com 
/script=C:\Users\Bunia\Desktop\FTP_commands.txt")

End sub

对于带空格的路径,不需要双引号。我建议转到C:\ Program Files(x86)\ WinSCP,打开WinSCP.com,然后在此处尝试您的代码,您将收到错误消息。我没有在WinSCP中为我生成传输代码的选项(版本:5.15.2(内部版本9590))。我只能看到用于打开SFTP会话的代码。实际上,一开始我必须创建我的公钥和私钥。我下载了PuTTy(对我来说是64bit)。安装后,我打开了PuTTygen。我选择要生成的密钥类型:RSA,已生成密钥的位数:2048。然后生成密钥对,加载私钥文件。我可以保存私钥.ppk格式,但是.pub公钥不只是从应用程序中保存。我复制了公钥,粘贴到.txt,保存,然后将扩展名更改为.pub(对我来说,它显示得像Office Publisher,但这很好)。

0 个答案:

没有答案