使用 scp 文件复制到 Amazon EC2 时停止传输 16K

Posted

技术标签:

【中文标题】使用 scp 文件复制到 Amazon EC2 时停止传输 16K【英文标题】:While copying to Amazon EC2 with scp file stops transfer on 16K 【发布时间】:2018-11-25 08:53:42 【问题描述】:

我正在尝试使用 scp 使用命令将文件复制到 Amazon EC2 AMI 实例

scp -i ~/.ssh/azhdanov_aws.txt udt-0.9.jar ec2-user@ec2-18-191-152-48.us-east-2.compute.amazonaws.com:~

但我收到了:

0%    0     0.0KB/s   --:-- ETApacket_write_wait: Connection to 18.191.152.48 port 22: Broken pipe

我可以用 ssh 登录

ssh -i ~/.ssh/azhdanov_aws.txt ec2-user@18.191.152.48

并看到卷上正好有 16K 字节的文件

drwx------ 3 ec2-user ec2-user  4096 Jun 15 13:15 .
drwxr-xr-x 3 root     root      4096 Apr  6 10:59 ..
-rw------- 1 ec2-user ec2-user  2102 Jun 15 13:12 .bash_history
-rw-r--r-- 1 ec2-user ec2-user    18 Aug 30  2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user   193 Aug 30  2017 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user   124 Aug 30  2017 .bashrc
drwx------ 2 ec2-user ec2-user  4096 Apr  6 10:59 .ssh
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:15 udt-0.9.jar

然后我通过在 vm 上复制文件来检查我没有音量限制:

drwx------ 3 ec2-user ec2-user  4096 Jun 15 13:27 .
drwxr-xr-x 3 root     root      4096 Apr  6 10:59 ..
-rw------- 1 ec2-user ec2-user  2102 Jun 15 13:12 .bash_history
-rw-r--r-- 1 ec2-user ec2-user    18 Aug 30  2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user   193 Aug 30  2017 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user   124 Aug 30  2017 .bashrc
drwx------ 2 ec2-user ec2-user  4096 Apr  6 10:59 .ssh
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:27 copy_udt-0.9.jar
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:15 udt-0.9.jar

而且我似乎没有超过 EC2 限制:

My Amazon services usage

调试信息没有给我答案,为什么我不能复制超过 16K 的文件:

debug3: send packet: type 98
debug3: Ignored env SECURITYSESSIONID
debug3: Ignored env _
debug3: Ignored env __CF_USER_TEXT_ENCODING
debug1: Sending command: scp -v -t ~
debug2: channel 0: request exec confirm 1
debug3: send packet: type 98
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
Sending file modes: C0644 11610816 udt-0.9.jar
debug2: channel 0: rcvd ext data 33
Sink: C0644 11610816 udt-0.9.jar
debug2: channel 0: written 33 to efd 8
udt-0.9.jar                                                                                                                                                        
0%    0     0.0KB/s   --:-- ETAdebug3: send packet: type 1
packet_write_wait: Connection to 18.191.152.48 port 22: Broken pipe
lost connection

【问题讨论】:

你试过 rsync 了吗? rsync.samba.org/examples.html @strongjz,这次根本没有数据传输:rsync -avL --progress -e "ssh -i ~/.ssh/azhdanov_aws.txt" ~/temas/git/protocols-benchmark /udt/build/libs/udt-0.9.jar ec2-user@13.59.11.218:~ 构建文件列表 ... 1 个要考虑的文件 udt-0.9.jar packet_write_wait: 连接到 13.59.11.218 端口 22: 损坏的管道 rsync: writefd_unbuffered 未能写入 32768 字节 [sender]:Broken pipe (32) rsync:连接意外关闭(到目前为止已收到 174 个字节)[sender] rsync 错误:无法解释的错误(代码 255)at/BuildRoot/Library/Caches/com.apple .xbs/Sources/rsync/rsync-52/rsync/io.c 我会在备份时检查两台服务器上的 /var/log/secure 和 /var/log/messages。两台服务器之间有防火墙吗? 【参考方案1】:

问题现在已经消失,我没有设法找到根本原因。希望以后不会再出现。

【讨论】:

以上是关于使用 scp 文件复制到 Amazon EC2 时停止传输 16K的主要内容,如果未能解决你的问题,请参考以下文章

使用 scp 将文件传输到 amazon ec2 实例总是给我拒绝权限(公钥,gssapi-with-mic)

scp(安全复制)到没有密码的ec2实例

scp 到 Amazon EC2 失败,但 ssh 有效

WinSCP 在登录到“root”后连接到 Amazon AMI EC2 实例更改用户

如何将我的 .war 文件复制到 AWS 上的 EC2 实例?

帮我通过 Amazon 的 EC2 复制数据并运行脚本