scp возвращает «неожиданную <новую строку>» ошибку

11

Я пытаюсь scpфайл с сервера на мою локальную машину, но он дает мне эту ошибку:

protocol error: unexpected <newline>

Это мой синтаксис:

scp user@server:/path/to/file .

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

Есть идеи?

srchulo
источник
Пожалуйста, оставьте свой ~/.bashrcна сервере.
кванты
Спасибо за помощь кванта. Я отредактировал свой .bashrc как раз перед тем, как увидеть ваш пост. Проблема заключалась в том, что у меня было эхо-заявление. Спасибо за помощь!
срчуло
@Miles, я пытался, но мне нужно подождать 8 часов, потому что у меня репутация менее 100. Я опубликую это как ответ, когда это время истечет.
срчуло
К вашему сведению, я столкнулся с этой проблемой и ... <sheepish> моя команда scp неверна </ sheepish>. Так что это может быть просто так.
ognockocaten

Ответы:

19

Один из ваших сценариев входа в систему (.bashrc / .cshrc / и т. Д.) Выводит данные в терминал, когда этого не должно быть. Это приводит к ошибке scp, когда он подключается и готовится к копированию, так как начинает получать дополнительные данные, которых он не ожидает. Удалить вывод, сгенерированный здесь.

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

if shopt -q login_shell; then
    [any code that outputs text here]
fi
Эндрю Кейс
источник
2

Нашел решение. Мой файл .bashrc и .bash_logout были настроены на вывод информации для меня при каждом входе / выходе. Видимо, эта новая линия дала SCP некоторые проблемы. Я прокомментировал свои эхо-заявления, и это сработало!

srchulo
источник
-1

У меня была похожая проблема. Причина была именно в этом: у меня в .bashrc есть команда "echo" some text "" для печати состояния прокси. И это "эхо" некоторого текста "" приводило к сбою scp. Поэтому, удалив «echo» в файле .bashrc, я перенес файлы с помощью scp.

evinhas
источник
1
Это не отличается от двух других ответов, опубликованных семь лет назад.
Касперд