Я пытаюсь scp
файл с сервера на мою локальную машину, но он дает мне эту ошибку:
protocol error: unexpected <newline>
Это мой синтаксис:
scp user@server:/path/to/file .
Он не работал на этом сервере, но затем я попробовал эту же команду на другом сервере, поэтому я могу только предположить, что это что-то не так с моим сервером, а не синтаксис scp
команды.
Есть идеи?
~/.bashrc
на сервере.Ответы:
Один из ваших сценариев входа в систему (.bashrc / .cshrc / и т. Д.) Выводит данные в терминал, когда этого не должно быть. Это приводит к ошибке scp, когда он подключается и готовится к копированию, так как начинает получать дополнительные данные, которых он не ожидает. Удалить вывод, сгенерированный здесь.
Вы можете проверить, является ли ваш терминал интерактивным и выводить только текст, используя следующий код в bashrc. Что-то эквивалентное существует и для других оболочек:
источник
Нашел решение. Мой файл .bashrc и .bash_logout были настроены на вывод информации для меня при каждом входе / выходе. Видимо, эта новая линия дала SCP некоторые проблемы. Я прокомментировал свои эхо-заявления, и это сработало!
источник
У меня была похожая проблема. Причина была именно в этом: у меня в .bashrc есть команда "echo" some text "" для печати состояния прокси. И это "эхо" некоторого текста "" приводило к сбою scp. Поэтому, удалив «echo» в файле .bashrc, я перенес файлы с помощью scp.
источник