Ключ хоста сервера не кэшируется в реестре.

Вопрос или проблема

Запланирована задача по отправке файлов через команду psftp (psftp -bc -v -P 22 -l username -pw password -b upload220506.ftp ftpsitename) на сервере Windows. Она уже закеширована путем запуска exe файла вручную из командной строки от имени администратора. Первый файл был успешно передан через задачу, а передача второго файла не удалась, и в журнале видно следующее сообщение. Как избежать этой проблемы при отправке нескольких файлов?

Используется Диффи-Хеллман с стандартной группой “group14”
Выполняется обмен ключами Диффи-Хеллмана с хешированием SHA-1
Ключ хоста сервера не сохранен в реестре. У вас нет гарантии, что сервер является тем компьютером, о котором вы думаете.
Отпечаток ключа rsa2 сервера:
ssh-rsa 2048
Если вы доверяете этому хосту, введите “y”, чтобы добавить ключ в кэш PuTTY и продолжить соединение.
Если вы хотите продолжить соединение только один раз, не добавляя ключ в кэш, введите “n”.
Если вы не доверяете этому хосту, нажмите Enter, чтобы отказаться от соединения.
Сохранить ключ в кэше? (y/n)

Это может быть полезным:

C:\putty\psftp.exe -i C:\connections\FTP\remote-server.ppk myuser@remote-server -batch -bc -be -b C:\putty\upload.txt -hostkey 39:e4:84:b2:6f:bc:87:04:1f:21:bf:32:83:79:0b:cf

https://bytefreaks.net/windows/psftp-exe-the-servers-host-key-is-not-cached-in-the-registry-you-have-no-guarantee-that-the-server-is-the-computer-you-think-it-is

Ответ или решение

Теория (Theory):

Когда вы используете PSFTP для передачи файлов, сервер использует ключ хоста для идентификации и обеспечения безопасного соединения. При первом подключении к новому серверу PSFTP попросит вас подтвердить доверие к этому серверу, сохранив его ключ в реестре. Это предотвращает возможность MITM-атаки (атака "человек посередине"), где злонамеренный сервер может попытаться перехватить ваши данные.

При этом возникновение сообщения об отсутствии ключа в реестре часто связано с тем, что PSFTP не может найти ключ, когда работа выполняется в запланированном задании, даже если он был кэширован вручную. Это может означать, что ключ не правильно сохраняется в контексте выполнения заданий планировщика, либо при передаче второго файла изменяется сеанс, и ключ не обнаруживается.

Пример (Example):

Ваша ошибка, заключающаяся в отсутствии ключа хоста в реестре, описывается следующим образом: когда задание было выполнено, и первый файл был успешно передан, последующие передачи не видели ключа в реестре, что привело к необходимости повторного подтверждения доверия. Это может происходить из-за некорректных настроек среды выполнения, где PSFTP не имеет доступа к кешу реестра.

Применение (Application):

Чтобы избежать этой проблемы, вы можете использовать параметр -hostkey, который явно указывает PSFTP доверять определенному ключу хоста. Это позволяет избежать интерактивного подтверждения и делает процесс автоматизированным. Пример использования параметра:

psftp.exe -i C:\connections\FTP\remote-server.ppk myuser@remote-server -batch -bc -be -b C:\putty\upload.txt -hostkey 39:e4:84:b2:6f:bc:87:04:1f:21:bf:32:83:79:0b:cf

Этот параметр обеспечивает специфическое указание PSFTP, что ключ указанного сервера безопасен. Если у вас уже есть серверный ключ (его отпечаток), вы можете добавить его в команду задания, как показано выше.

Кроме того, убедитесь, что задание, выполняющее скрипт PSFTP, записывает лог выполнения, чтобы упростить диагностику в случае дальнейших сбоев. Используйте режим -batch, который предотвращает попроцессную остановку для ручного ввода, усиливая автоматичность выполнения задач.

Оцените материал
Добавить комментарий

Капча загружается...