61

When I attempted to copy a file (of size, ) over the network using scp I get a error <file> stalled Why does this happen? How do I resolve it?

Lelouch Lamperouge
  • 2,828
  • 4
  • 19
  • 19

4 Answers4

78

This happens because scp is trying to grab as much bandwidth as possible, and any delay (by a firewall, etc.) can stall it. Limiting the bandwidth (with -l option) will fix it.

For example, you might want to limit the bandwidth to 1 MB/s (= 8192 Kbits/s):

 scp -l 8192 <file> <destination>

Source: http://www.aixmind.com/?p=1371 - Wayback Machine

muru
  • 193,181
  • 53
  • 473
  • 722
6

I've managed to solve it by using rsync:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt [email protected]:/tmp/
user1453912
  • 161
  • 1
  • 2
2

Any chance you're behind a Cisco ASA firewall? If so, turn off "sequence number randomization" and that'll help a lot -- also disable TCP Offload (ethtool -K $INTERFACE tso off gso off gro off) if you're on a Cisco ASA with Broadcom NICs in your server.

dotwaffle
  • 121
  • 2
  • That's genius. Is that change permanent or do I need to put the command somewhere? Just to be clear, you have to set that on your NIC, not on the cscotun interface. – mjaggard May 18 '17 at 18:54
1

Given the error message that we received when the scp stalled I suspected that it was the encryption that was failing. "The authenticity of host 'myserver (10.10.11.12)' can't be established. ECDSA key fingerprint is SHA256:+zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo" With that in mind I ran "scp -c aes128-ctr /tmp/test.dan/bigfile.src myserver:/tmp/bigfile". scp WAS successful with the alternate cipher. Is there an issue with the default cipher blowing a buffer space?

Might try adding "-c " with an alternate cipher and see if it resolves your stall.