我想不出任何原因为什么一个简单的文件传输失败rsync -e 'ssh -p 19' -vvv /path/to/file [email protected]:
opening connection using: ssh -p 19 -l root 192.168.179.3 rsync --server -vvve.Lsfx . . (11 args)
Permission denied, please try again.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(12)
ssh
登录时一切正常。本地文件成功,权限为,所有者为调用的用户。文件位于。ssh -p 19 [email protected]
cat [/path/to/file]
664
rsync
/tmp/
在参数中指定绝对路径-e
,即,没有帮助。rsync -e '/usr/bin/ssh -p 19' -vvv /path/to/file [email protected]:
rsync
我在 Ubuntu 15.10 上使用3.1.1。
答案1
ssh
或rsync
给出的另一种可能解释是Permission denied, please try again.
。原因是遥控器rsync
位于不寻常的位置,必须--rsync-path
在发送方指定(请参阅https://stackoverflow.com/questions/7261029/how-to-solve-rsync-error-error-in-rsync-protocol-data-stream-code-12-at-io-c#comment22193023_12286054)。
亲爱的ssh
开发者们,请停止这种胡闹!触发的错误原因Permission denied, please try again.
越来越多,请发自内心地为用户提供任何可用的反馈 - 到目前为止,您还没有朝这个方向实施任何事情,这是我使用ssh
多年后遇到的,遇到过几十个非常清晰和可解释的失败原因,最终都以失败告终Permission denied, please try again.
。没有人能理解这一点!
操作系统产生这个消息并且无法改变这一事实并不意味着什么。你负责软件向用户提供的反馈,如果Permission denied, please try again.
给出的反馈是上述非常容易沟通的故障原因,那就大错特错了 - 只需打印remote binary not found, please use --rsync-path on the sender side
即可!看,这并不难。
答案2
错误消息没有提到文件权限。相反,这是标准远程控制错误消息指出登录本身不被允许 —— 要么是由于密码错误,要么是由于服务器配置不允许 root 登录。
请注意,您的“测试”和 rsync 命令之间存在一些差异:
- 您通过 ssh 连接到
[email protected]
,同时 rsync 正在连接到[email protected]
。 - 您没有指定端口,因此连接到标准 SSH 端口 22,而 rsync 指定了端口 19。这些端口可能由两个具有不同配置的独立 sshd 守护程序处理。
答案3
我仅将我的解决方案放在这里,以防它对其他人有用。
我尝试使用 rsync 将文件复制到 EC2 实例。同样的命令运行了一段时间,但后来就坏了。我在网上找到的解决方案都没什么用。
通过 ssh 进入远程服务器并ls -l
在我要复制到的位置运行,我发现该build
文件夹是由 root 创建的,而所有其他文件夹都是由 ubuntu 创建的。权限问题源于尝试将我的本地构建文件夹复制到远程,因此删除本地构建文件夹(无论如何都不应该被复制)为我解决了这个问题。