cygwin - cygwin rsync 有效,但在使用 sshpass 时无效
问题描述
我正在使用安装了 openssh、openssl、sshpass 和 rsync 等的 cygwin。我已将 C:\cygwin64\home 添加到环境变量“路径”中。当我运行命令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 读取:”之后什么都没有出现。此外,在此处显示此信息时,我将真实的远程用户名和 IP 地址替换为“用户”和“1.2.3.4”。真实密码包含从批处理脚本运行时需要转义的特殊字符。但是,我认为这不是问题,因为我没有收到错误的密码错误(如果我将 SSHPASS 设置为错误的密码,我可以得到)
本地计算机在 Windows 10 上,而远程计算机在 Ubuntu 上。我通常通过腻子连接到它。
所以我的问题是,我必须怎么做才能让 rsync 在每次运行时都不需要密码的情况下工作?我无法更改远程计算机的配置。
这可能是不相关的,但是该rsync
命令仅在本地路径是相对路径时才有效,否则我们会收到错误消息,指出它们不能都是远程的。这是关于 stachoverflow 的答案。
此外, rsync 拒绝将主机添加到已知主机列表中,直到我编辑文件nsswitch.conf
以包含db_home: windows
.
解决方案
推荐阅读
- freemarker - Freemarker:将日期从科学记数法转换为数字
- sql - 将(翻译)从一种 sql 语法转换为另一种(从 mssql 到 oracle、h2...)
- excel - XMLhttp 请求仅从 Salesforce (Excel VBA) 返回 250 条记录
- python - Postgres 像 SQLite 那样传递元组
- django - 如何在 Django 的多对多关系中获取 models.CASCADE?
- c# - Revit API C# 插入和旋转族
- python - 查找二维数组中元素的索引
- python - openpyxl(3.0.3) 保存功能需要很长时间
- javascript - 使用 Python 3.7 选中 HTML 页面中的复选框
- html - 使整个伪元素可点击