Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to scp a file from a server to my local machine, but it is giving me this error:

protocol error: unexpected <newline>

This is my syntax:

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

It did not work on this server, but then I tried the same command on my other server, so I can only assume that it is something wrong with my server and not the syntax of the scp command.

Any ideas?

share|improve this question
Please post your ~/.bashrc on the server. – quanta Nov 7 '11 at 4:13
Thanks for the help quanta. I edited my .bashrc just before seeing your post. The issue was that I had an echo statement in it. Thanks for the help! – srchulo Nov 7 '11 at 4:16
@Miles, I tried but I have to wait 8 hours because I have a reputation of less than 100. I will post it as an answer when that time is up. – srchulo Nov 7 '11 at 4:29
up vote 9 down vote accepted

One of your login scripts (.bashrc/.cshrc/etc.) is outputting data to the terminal when it shouldn't be. This is causing scp to error when it is connecting and getting ready to copy as it starts receiving extra data it doesn't expect. Remove output that is generated here.

You can check if your terminal is interactive and only output text by using the following code in a bashrc. Something equivalent exists for other shells as well:

if shopt -q login_shell; then
    [any code that outputs text here]
share|improve this answer

Found the solution. My .bashrc file and .bash_logout were set to echo out information to me whenever I log in/out. Apparently that echoed new line was giving scp some issues. I commented out my echo statements and that did the trick!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.