谷歌云的 Compute Engine 在能 ssh 登录的情况下无法用 scp 上传文件

2019-01-24 06:05:30 +08:00
 OldPanda

即使是小如只包含“ hello world ”的文本文件都不行,一上传就直接 broken pipe。小弟见识不多,有哪位大神能简单解释一下这是如何做到的?感谢大家!

2940 次点击
所在节点    全球工单系统
15 条回复
xiaket
2019-01-24 06:11:28 +08:00
man 5 sshd_config 看下 Subsystem
OldPanda
2019-01-24 06:21:28 +08:00
@xiaket 看了下是这个样子的
```
# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server
```
xiaket
2019-01-24 06:24:03 +08:00
手边没有 gcp 的机器不方便测试了, 你的.bashrc/.bash_profile 最近可改过?
xiaket
2019-01-24 06:25:45 +08:00
顺便推荐下自己很早以前翻译的 scp 原理: https://blog.xiaket.org/2010/how-scp-protocol-works.html


scp 协议本身很简单, 如果 ssh 能用, 那么 scp 应该能.
ladypxy
2019-01-24 07:33:49 +08:00
最大的可能,是权限问题。。你 ssh 的帐号不是 root,你肯定是在往没有写入权限的目录传文件
OldPanda
2019-01-24 09:03:05 +08:00
@xiaket 这一块从来没动过,所以感觉这两者都是同一个端口,一个行一个不行很诡异
OldPanda
2019-01-24 09:03:22 +08:00
@ladypxy 是上传到自己的文件夹里
OldPanda
2019-01-24 09:05:11 +08:00
@ladypxy 并且,如果没有权限的话,报错应该是 Permission denied 而不是 Broken pipe
reus
2019-01-24 09:17:14 +08:00
可能通讯被干扰了
chickplilita
2019-01-24 09:31:23 +08:00
mtu 吧,你们中间链路的 mtu 值比较小。

你 ping dst_ip -s 1600 试试,要是 1600 不行,1400 行,肯定是 mtu 的问题。
OldPanda
2019-01-24 09:37:47 +08:00
@chickplilita 感谢建议,不过 1600 和 1400 都没问题
chickplilita
2019-01-24 09:45:51 +08:00
@OldPanda #11 额,那就只能两端抓包,分析一下包才能看出原因了。
OldPanda
2019-01-24 09:48:19 +08:00
@chickplilita 已经通过他们的 Storage 服务绕过这个问题了。。
cdlixucd
2019-01-24 09:55:02 +08:00
你什么客户端?我先把 public-key 上传到 GCE,然后通过 priavte-key 来做验证,可以上传啊
ihciah
2019-01-24 16:59:32 +08:00
自己 scp 到自己试试先?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/530037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX