cygwin rsync可以工作,但在使用sshpass时不能工作

cygwin rsync可以工作,但在使用sshpass时不能工作,cygwin,rsync,openssh,sshpass,Cygwin,Rsync,Openssh,Sshpass,我在使用cygwin时安装了openssh、openssl、sshpass和rsync等。我已将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/ .\relati

我在使用cygwin时安装了openssh、openssl、sshpass和rsync等。我已将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地址替换为“user”和“1.2.3.4”。真实密码包含从批处理脚本运行时需要转义的特殊字符。但是,我不认为这是问题所在,因为我没有得到错误的密码错误(如果我将SSHPASS设置为错误的密码,我可以得到错误的密码)

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

所以我的问题是,要让rsync在每次运行时都不请求密码的情况下工作,我必须做些什么?我无法更改远程计算机的配置

这可能是不相关的,但是只有当本地路径是相对路径时,
rsync
命令才起作用,否则我们会收到一个错误,说它们不能都是远程的。这是一个很好的回答

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