Ключ ssh-rsa хоста отклоняется WinSCP при подключении по запланированной задаче, но не при запуске вручную

Как часть запланированной задачи, которая выполняется на машине Windows Server 2012, я использую WinSCP для подключения через sFTP с использованием учетных данных и ключа ssh-rsa. Когда запускается запланированная задача, соединение не устанавливается со следующим сообщением об ошибке:

2019/08/26 05:27:28 - Push files to sFTP - (stdout) Authenticating...
2019/08/26 05:27:28 - Push files to sFTP - (stdout) Host key does not match configured key "ps8Qj1+Y5WmEKcjdH05cqfzOGCxXHa+X3lhCixestv8="!
2019/08/26 05:27:28 - Push files to sFTP - (stdout) Host key fingerprint is ssh-rsa 2048 ps8Qj1+Y5WmEKcjdH05cqfzOGCxXHa+X3lhCixestv8=.
2019/08/26 05:27:28 - Push files to sFTP - (stdout) 
2019/08/26 05:27:28 - Push files to sFTP - (stdout) Authentication failed.

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

строка подключения (сведения о сервере отредактированы):

"c:\Program Files (x86)\WinSCP\WinSCP.com" /command "open sftp://user:pwd@secure-transfer-ftp.server.com -passive=on -timeout=500 -hostkey=ps8Qj1+Y5WmEKcjdH05cqfzOGCxXHa+X3lhCixestv8=" 

Есть идеи, почему он не работает, когда выполняется как запланированная задача? Единственным изменением было обновление адреса SFTP, поскольку другая сторона обновила свои IP-адреса и связанные URL-адреса, но, согласно, ключ не изменился (о чем свидетельствует тот факт, что я могу подключиться вручную)

1
задан 28 August 2019 в 14:38
1 ответ

Ваш сценарий неверен. Переключатель -hostkey должен включать даже тип и размер ключа (только в готовящейся к выпуску версии WinSCP 5.16 будет разрешена только контрольная сумма, но это все равно не рекомендуется) .

он должен быть:

"...\WinSCP.com" /command "open ... -hostkey=""ssh-rsa 2048 ps8Qj1+Y5WmEKcjdH05cqfzOGCxXHa+X3lhCixestv8="""

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

Это описано в FAQ по WinSCP Мой сценарий отлично работает при выполнении вручную, но дает сбой или зависает при запуске планировщиком Windows, SSIS или другими средствами автоматизации оказание услуг. Что я делаю не так?

1
ответ дан 3 December 2019 в 23:01

Теги

Похожие вопросы