Я удаляю деталь с помощью "WinSCP scripting interface .NET wrapper", так как здесь он не нужен.Ниже вы найдете фрагмент кода в 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, но это было нормально).