scp завершается с ошибкой протокола: имя файла не соответствует запросу - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть скрипт, который использует SCP для извлечения файла с удаленного хоста Linux на AWS.После того, как один и тот же код выполнялся по ночам в течение 6 месяцев без проблем, сегодня он начал работать с ошибкой protocol error: filename does not match request.Я воспроизвел проблему с некоторыми более простыми именами файлов ниже:

$ scp -i $IDENT $HOST_AND_DIR/"foobar" .
# the file is copied successfully

$ scp -i $IDENT $HOST_AND_DIR/"'foobar'" .
protocol error: filename does not match request
# used to work, i swear...

$ scp -i $IDENT $HOST_AND_DIR/"'foobarbaz'" .
scp: /home/user_redacted/foobarbaz: No such file or directory
# less surprising...

Причиной для моих одинарных кавычек было то, что я изначально брал файл с пробелами в имени.Чтобы справиться с пробелами, я делал $HOST_AND_DIR/"'foo bar'" в течение многих месяцев, но начиная с сегодняшнего дня, он будет принимать только $HOST_AND_DIR/"foo\ bar".Итак, моя проблема исправлена ​​, но мне все еще интересно, что происходит.

Я погуглил сообщение об ошибке, но я не вижу никаких реальных упоминаний о нем, что удивляетme.

Оба задействованных хоста имеют OpenSSL 1.0.2g в выводе ssh -v localhost, а bash --version говорит GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu) Есть идеи?

1 Ответ

0 голосов
/ 08 февраля 2019

В итоге я просмотрел исходный код и нашел коммит, в который выдается эта ошибка:

GitHub Commit

remote-> localКопии каталогов соответствуют подстановочному знаку, указанному пользователем.

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

По этой причине здесь также добавлен новый флаг -T для отключения проверки.

Они добавили новый флаг -T, который будет игнорировать эту новую проверкудобавлено, так что оно обратно совместимо.Тем не менее, я полагаю, что мы должны посмотреть и выяснить, почему имена файлов, которые мы используем, помечены как ограниченные.

...