проблема - сохранение ключа в кеше Вопрос остановки приложения VBA
Я использую pscp.exe для передачи файлов из windows на Linux-машину.
Примечание: pscp.exe существует в моем коде VBA (этот клиент является частью инструментов PuTTY)
Когда я копирую файлы со своего компьютера на любую новую машину Linux, у меня возникает вопрос «Хранить ключ в кэше? (Да / нет)», и это прерывает мое приложение VBA (приложение VBA остановлено в процессе sftp).
Мне нужен совет, как игнорировать вопрос "Хранить ключ в кеше? (Да / нет)". Или, может быть, автоматически посылать ключ "y" из моего кода VBA? Или другое решение, как определено в реестре ПК перед запуском pscp.exe? Но как это сделать?
Пример из командной строки WIN XP (cmd)
Примечание: 192.9.200.120 (IP-адрес сервера Linux)
"D: \ Documents and Settings \ udavid \ pscp.exe" -sftp -l root -pw pass123
«D: \ Documents and Settings \ udavid \ Desktop \ scan_ip.ksh» 192.9.200.120:/var/tmp
CMD выход:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 1024 15:e1:ce:4f:8e:4e:7b:61:14:c3:df:3c:b1:50:67:b6
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)
Пример вывода CMD, если я использую флаг -batch (pscp.exe -batch)
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 d5:80:49:7f:69:f1:29:7c:1f:99:ec:c9:f4:b2:6f:a0
Connection abandoned.
Lost connection
--- Example from my VBA code ---
Const cstrSftp As String = """D:\documents and settings\udavid\pscp.exe"""
Dim strCommand As String
Dim pUser As String
Dim pPass As String
Dim pHost As String
Dim pFile As String
Dim pRemotePath As String
pUser = "root"
pPass = "pass123"
pHost = "xxx.xxx.xxx.xxx" xxx.xxx.xxx.xxx - any server new IP
pFile = """D:\Documents and Settings\udavid\Desktop\scan_ip.ksh"""
pRemotePath = "/var/tmp"
strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & " " & pFile & " " & pHost & ":" & pRemotePath
Debug.Print strCommand
Shell strCommand, 1