当运行 grsync 将本地文件传输到远程服务器时,程序只是静静地待在那里什么也不做。不幸的是,它从不要求我输入远程系统密码。
操作系统是 Ubuntu 18.04.4 LTS。grsync 是 1.2.6。
当从提示符运行 rsync 时(通过使用 grsync 的 alt-r“rsync 命令行”,并将指示的命令复制到终端窗口中的提示符),显示的即时错误(即没有超时)是:
ssh: connect to host remotehost-name port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
奇怪的是,我没有指示 rsync 使用端口 22。事实上,这是我的 grsync 命令:
rsync -r -t -v --progress --delete -z -s -e ssh -p 7822 --exclude .* /local-path/local-directory/ login@remote-server:path/directory
据我所知,rsync 应该使用端口 7822,如命令中所示。进一步检查后,我发现 grsync 未正确生成 rsync 命令。根据我设置 grsync 的具体方式,它应该生成一个包含以下内容的命令引号, 像这样:
rsync -r -t -v --progress --delete -z -s -e "ssh -p 7822" --exclude ".*" /local-path/local-directory/ login@remote-server:path/directory
此命令在提示符下运行时会导致密码请求。
为什么 grsync 不包含引号?在 grsync 的“高级选项”选项卡中,我已经添加了引号!在那里,我写了以下内容:
-e "ssh -p 7822" --exclude ".*"
问题是什么?如何解决?