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