Open VictorVG opened 7 years ago
Если в комстроке WinSCP дать команду winscp ftp://192.168.1.1/
, то получим:
Opening session using command-line parameter in scripting is deprecated. Use 'open' command instead. Prompting for credentials... Username:
Authentication failed. winscp>
т.е. парсер не подставляет логин если в URL не задано имя пользователя.
В новой WinSCP v5.11.1 рекомендации RFC-1738 проигнорированы ибо их исполнение не обязательно. И в доках про это молчат - не обязательно, значит обойдутся!
NetBox v2.4.5.529 - баг не исправлен.
в NetBox 2.4.5.531 не исправлено, авторы WinSCP баг-репорты по данной проблеме игнорируют.
Вылезло :( - если мы задаём URL не содержащий полей UserName и Password то WinSCP отсылает на сервер запрос с пустыми именем юзера и паролем что приводит к ошибке логона на анонимные FTP сервера.
По крайней мере сниффер в потоке от WinSCP v5.11.0.7715 Portable при расшифровке идущих на PureFTPd пакетов показывает что в случае если в URL не задана пара UserName:Pasword при скинутом флаге Anonymous login утилита посылает на сервер пакеты с пустыми именем пользователя и паролем, ну и результат ожидаем - ответ сервера Access denied:
это тот же, но уже на локальный PureFTPd в роутере под Linux:
Как решение я вижу два возможных варианта:
1) исправление в коде WinSCP, но тогда придётся его править постоянно; 2) самим добавитт в наш алгоритм фрагмент который будет проверять наличие в URL имени пользователя и пароля и при их отсутствуии добавлять в URL фрагмент типа anonymous:example.com@ который автоматически обеспечит анонимный логин.
Решение предлагаемое в п. 2. позволит одновременно решить и сопутствующую задачу правки сохранённых анонимных сессий т.к. ранее в них при пустом поле UserName автоматически подставлялось имя пользователя anonymous (NetBox v2.4.4.524):
, а после обновления WinSCP до версии 5.10.3 beta при создании новой сессии в NetBox v5.2.5.527 видим:
что по умолчанию поля UserName и Password теперь пустые и пользователь должен их заполнить самостоятельно.
Я конечно сваял костыль на время, но чтой-то у меня вылезли проблемы с LuaMacro :) . Код скрипта:
ну, при нужде не долго и список распознаваемых протоколов дополнить, хотя не сильно хочется косыль оставлять. :)