1

Я следую примеру на https://winscp.net/rus/docs/scripting, чтобы автоматизировать передачу файлов с моего компьютера на SFTP-сервер. Однако каждый раз, когда я пытаюсь предоставить пароль для закрытого ключа, он не проходит аутентификацию.

Я могу использовать один и тот же пароль при использовании графического пользовательского интерфейса WinSCP и при явном вводе пароля в командной строке, но не при автоматизации.

Мой код выглядит следующим образом

open sftp://user:password%21@example.com

Я следовал предложению на https://winscp.net/rus/docs/session_url для кодирования специальных символов, следовательно,% 21, который символизирует восклицательный знак. Интересно, что пример на странице не кодирует восклицательный знак, например, 4pRte!ai%253@example.com

Я также пытался использовать password! и это тоже не работает.

2 ответа2

0

Проблема заключалась в том, что он ожидал парольную фразу для закрытого ключа, которую WinSCP не поддерживает программным способом в соответствии с часто задаваемыми вопросами по адресу https://winscp.net/rus/docs/faq_passphrase.

Обходным путем было использование агента Pageant, поставляемого с установкой WinSCP, или в качестве отдельного исполняемого файла по адресу https://winscp.net/rus/download.php. Надеюсь, это поможет кому-то еще в будущем.

0

Это не "пароль", это "пароль".

В соответствии с часто задаваемыми вопросами WinSCP Как я могу подключиться, не вводя парольную фразу секретного ключа каждый раз?:

Автоматизация аутентификации с помощью закрытого ключа
Вы можете указать пароль с помощью -passphrase команды open в скриптах

Пример:

open -passphrase=... -privatekey=... sftp://user@example.com/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .