rsync 错误:io.c(226) [sender=3.1.2] 处的无法解释的错误(代码 255)

use*_*303 8 ssh cygwin rsync

今天是个好日子。我正在尝试通过 ssh 同步到我的 Manjaro 服务器。没什么特别的,只是一个 PNG 来验证它是否有效。我正在使用基本密码身份验证,以便在我开始打包额外的安全性之前验证我是否可以使其正常运行。

rsync -v -e ssh /home/john/rsyncdemo/rsyncdemo2/saved.png sshuser@192.162.2.187:/home/sshuser/Desktop/rsyncdemo/rsyncdemo2/saved.png
Run Code Online (Sandbox Code Playgroud)

当我这样做时,大约 10 秒钟后我收到以下错误。

ssh: connect to host 192.162.2.187 port 22: Connection timed out
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]
Run Code Online (Sandbox Code Playgroud)

我对 ssh 并不陌生,但这超出了我对深层内部运作的适度理解。我用谷歌搜索了这个问题,但我不想在没有首先了解问题的情况下在我的系统中抛出任意解决方案。我将解释我所做的以收集更多信息。我有3个系统。

  1. Win10-PC with Cygwin(完全更新)(Atheros Wireless)
  2. Arch-Laptop(完全更新)(Atheros Wireless)
  3. Manjaro-Server(完全更新)(有线)

+路由器

  • 华硕 RT-N10P

我检查的第一件事是 sshd。在所有 3 台机器上启用并重新启动 sshd。值得注意的是,我的 Manjaro 是全新安装的品牌。Arch 已被修改,但系统非常小。Cygwin 也是新的,但自从我重新安装 Windows 以来已经有一段时间了,我在后台运行了一些东西。我还转发了端口并禁用了路由器上的防火墙。

运行三个命令。

ssh sshuser@192.162.2.187

rsync -r /cygdrive/c/Users/John/Desktop/rsyncdemo/ /cygdrive/e/rsyncdemo/

scp /cygdrive/c/Users/John/Desktop/rsyncdemo/rsyncdemo2/saved.png sshuser@192.168.2.187:/home/sshuser/Desktop/rsyncdemo/rsyncdemo2/
Run Code Online (Sandbox Code Playgroud)

所有这些命令都有效。这意味着:通过 ssh 登录机器工作,将文件复制到服务器工作和 rsync 工作。当我尝试通过 ssh 进行 rsync 时,问题存在。存在两种可能性之一。要么服务器有问题,要么我错过了在两台客户端计算机上配置 ssh 的一些基本步骤。更可能是前者。就像我说的,我之前有设置 ssh 的经验,而且前几次并不难。我首先检查了我正在运行的 ssh 和 rsync 版本。

Win10-PC(启用并启动 sshd)

OpenSSH_7.5p1, OpenSSL 1.0.2k  26 Jan 2017
Run Code Online (Sandbox Code Playgroud)

Arch-Laptop(启用并启动 sshd)

OpenSSH_7.5p1, OpenSSL 1.1.0f  25 May 2017
Run Code Online (Sandbox Code Playgroud)

Manjaro-Server(启用并启动 sshd)

OpenSSH_7.5p1, OpenSSL 1.1.0f  25 May 2017
Run Code Online (Sandbox Code Playgroud)

全部 3 台机器

rsync  version 3.1.2  protocol version 31
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, prealloc
Run Code Online (Sandbox Code Playgroud)

您可能已经注意到,openssl 的 Cygwin 版本没有其他两个高。我认为这不会导致问题,因为 Arch 也无法连接到网络。就像我之前说的,要么服务器有问题,要么我错过了在两台客户端计算机上配置 ssh 的一些基本步骤。

我也阅读了这个线程,但我不确定所选的答案是否要我在客户端主机上配置 ssh_config 文件。在任何一种情况下,一个简单的 png 都不应该花这么长时间来 rsync 所以我怀疑它与问题有什么关系,但我会把它留在这里以防万一

rsync 超时

如果你脑子里有一个答案,太棒了。如果您不这样做,那么发布可以帮助进一步隔离问题的内容将同样受到赞赏。非常感谢你的帮助。

小智 1

当IP地址不正确时会发生这种情况:

ssh: connect to host **192.168.1.146** port 22: Connection timed out
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
Run Code Online (Sandbox Code Playgroud)
root@arc:/home/arc# rsync -rvzaX --delete /home/arc/nikhil/ \backupserver@**192.168.0.146**:/home/backupserver/mega
backupserver@192.168.0.146's password:
sending incremental file list
created directory /home/backupserver/mega
./
Nikhil Daily Tracking Sheet_2018.xlsx

sent 6,896 bytes  received 84 bytes  1,073.85 bytes/sec
total size is 9,975  speedup is 1.43
Run Code Online (Sandbox Code Playgroud)