scp zwraca błąd „nieoczekiwany <nowa linia>”

11

Próbuję scputworzyć plik z serwera na komputer lokalny, ale pojawia się następujący błąd:

protocol error: unexpected <newline>

Oto moja składnia:

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

Nie działało to na tym serwerze, ale potem wypróbowałem to samo polecenie na innym serwerze, więc mogę jedynie założyć, że coś jest nie tak z moim serwerem, a nie składnią scppolecenia.

Jakieś pomysły?

srchulo
źródło
Proszę zamieścić swoje ~/.bashrcna serwerze.
kwanty
Dzięki za kwanty pomocy. Zredagowałem mój .bashrc tuż przed zobaczeniem twojego posta. Problem polegał na tym, że miałem w sobie wypowiedź echa. Dzięki za pomoc!
srchulo,
@Miles, próbowałem, ale muszę czekać 8 godzin, ponieważ mam reputację mniejszą niż 100. Prześlemy ją jako odpowiedź, gdy ten czas się skończy.
srchulo,
Do twojej wiadomości wpadłem na ten problem i ... <sheepish> moje polecenie scp było niepoprawne </sheepish>. Więc może tak być.
ognockocaten

Odpowiedzi:

19

Jeden ze skryptów logowania (.bashrc / .cshrc / itp.) Wysyła dane do terminala, kiedy nie powinno. Powoduje to błąd scp podczas łączenia się i przygotowywania do kopiowania, gdy zaczyna otrzymywać dodatkowe dane, których się nie spodziewa. Usuń generowane tutaj dane wyjściowe.

Możesz sprawdzić, czy twój terminal jest interaktywny i wyświetlać tylko tekst, używając następującego kodu w bashrc. Istnieje coś równoważnego również dla innych powłok:

if shopt -q login_shell; then
    [any code that outputs text here]
fi
Andrew Case
źródło
2

Znalazłem rozwiązanie. Mój plik .bashrc i .bash_logout zostały ustawione tak, aby wyświetlały mi informacje przy każdym logowaniu / wylogowywaniu. Najwyraźniej ta nowa linia odbiła się echem na scp. Skomentowałem moje wypowiedzi echa i to załatwiło sprawę!

srchulo
źródło
-1

Miałem podobny problem. Powód był następujący: w moim .bashrc mam polecenie „echo” tekst ”w celu wydrukowania statusu proxy. I to „echo” jakiegoś tekstu spowodowało, że scp nie powiodło się. Więc usuwając „echo” w pliku .bashrc, przesyłam pliki za pomocą scp.

evinhas
źródło
1
Nie różni się to niczym od dwóch pozostałych odpowiedzi opublikowanych siedem lat temu.
kasperd