微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cygwin rsync 有效,但在使用 sshpass 时无效

如何解决cygwin rsync 有效,但在使用 sshpass 时无效

我正在使用安装了 openssh、openssl、sshpass 和 rsync 等的 cygwin。我已将 C:\cygwin64\home 添加到环境变量“path”中。当我运行命令 rsync -avP user@1.2.3.4:/remote/path/ .\relative\local\path 它工作。但是,如果我使用 sshpass,就像这样:

set SSHPASS=password
sshpass -e -v rsync -avP user@1.2.3.4:/remote/path/ .\relative\local\path

这不起作用。文件未传输,输出为:

SSHPASS searching for password prompt using match "assword"
user@1.2.3.4's password:
SSHPASS detected prompt. Sending password.
SSHPASS read:

在“SSHPASS read:”之后什么也没有出现。此外,在此处显示此信息时,我将真实的远程用户名和 IP 地址替换为“用户”和“1.2.3.4”。真实密码包含从批处理脚本运行时需要转义的特殊字符。但是,我认为这不是问题,因为我没有收到错误的密码错误(如果我将 SSHPASS 设置为错误的密码,我会得到)

本地计算机在 Windows 10 上,而远程计算机在 Ubuntu 上。我通常通过腻子连接到它。

所以我的问题是,我需要做什么才能让 rsync 正常工作,而无需每次运行时都要求输入密码?我无法更改远程计算机的配置。

这可能无关,但是 rsync 命令仅在本地路径是相对路径时才有效,否则我们会收到错误消息,指出它们不能都是远程路径。这是 stachoverflow 的答案。

此外,rsync 拒绝将主机添加到已知主机列表中,直到我编辑了文件 nsswitch.conf 以包含行 db_home: windows

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。