通过反向 ssh 隧道进行 rsync

通过反向 ssh 隧道进行 rsync

我目前有一个有效的反向 ssh 隧道设置,它允许我使用端口转发从连接 wifi 的家庭桌面远程访问连接蜂窝网络模块的 raspberry pi。虽然我现在可以自由地通过 ssh 进入连接蜂窝网络的 raspi,但使用 Rsync 将文件传输到该蜂窝 raspi 不起作用。以下是我使用过的命令:

首先,在蜂窝 raspi 上(4000 = raspi 上的 ssh 端口,5000 = 桌面上的 ssh 端口):

ssh -f -N -T -R 2222:localhost:4000 desktop_username@routerip -p 5000

接下来,在桌面上:

rsync -avr -e "ssh -p 2222" /source_dir raspi_username@localhost:/target_dir

这会导致错误:

ssh: Could not resolve hostname localhost: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(228) [sender=3.2.3]

我知道 ssh 确实可以运行,因为我可以按照上面的第一个命令从桌面远程回到 raspi:

ssh raspi_username@localhost -p 2222

在这种情况下,我应该做哪些更正才能正确使用 Rsync?提前致谢。

答案1

判断您能够通过端口 2222 ssh 进入您的计算机,我认为您将远程端口(桌面)与端口(2222)混淆了。请在您的 Raspberry Pi 上尝试以下操作:

ssh -f -N -T -R 5000:localhost:4000 desktop_username@routerip -p 2222

相关内容