Итак, немного покопавшись, оказывается, что PSFTP не распознает ключи к ftp-серверу. Я открыл cmd как СИСТЕМА
(что может быть немного сложно!) и подключился через PSFTP, принял доверие к хосту (серверу sFTP), после чего скрипт заработал как положено! У других пользователей это не вызвало проблем, так как они использовались в тестировании и подсказка была раньше!
К вашему сведению, ключ также хранится в реестре в разделе HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
, чтобы его можно было добавить туда для других пользователей, если вы не хотите входить в систему вручную (я добавил эту отметку в свой скрипт, чтобы добавить ее, если она отсутствует для любого пользователя, выполняющего скрипт).
РЕДАКТИРОВАТЬ: я считаю, что моей самой большой проблемой было получение cmd как СИСТЕМА
поэтому я могу отлаживать происходящее, как только я смог (см. ссылку выше, как я это сделал), мне стало ясно.Для справки и большей ясности ниже приведен вывод команды перед добавлением ключа, только замаскированные чувствительные части:
C:\Users\myuser>эхо ls | psftp -l myftpuser -pw mycomplexpswd sftp_server
Ключ хоста сервера не кэшируется. У вас нет гарантии
что сервер - это компьютер, которым вы его считаете.
Отпечаток ключа rsa2 сервера:
ssh-rsa 2048 SHA256: сложный причудливый ключ хоста
Если вы доверяете этому хосту, введите «y», чтобы добавить ключ к
Кэш PuTTY и продолжайте подключение.
Если вы хотите продолжить подключение только один раз, без
добавив ключ в кеш, введите "n".
Если вы не доверяете этому хосту, нажмите «Ввод», чтобы отказаться от
связь.
Сохранить ключ в кеше? (да/нет, Возврат отменяет соединение, я для получения дополнительной информации)
Используя имя пользователя «myftpuser».
Баннерное сообщение перед аутентификацией с сервера:
| Вход в систему через FTP компании. Чтобы продолжить, введите действительные учетные данные.
Конец баннерного сообщения с сервера
Запросы аутентификации с интерактивной клавиатуры с сервера:
Конец интерактивных подсказок с сервера
Удаленный рабочий каталог /
psftp> выйти