SSH 上的 Rsync 不存在 tty

Lyn*_*ens 7 linux debian ssh rsync sudo

我在 Debian 的 root 的 crontab 中使用以下命令。

rsync -vqrlHEAXogDtzhi --log-file=${LOG} --progress --rsync-path="sudo /usr/bin/rsync" --exclude-from=$CONFIG_DIR/excludes -e "ssh -i /home/backups/.ssh/id_rsa" backups@${HOSTNAME}:/ ${BACKUP_DIR}
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

我尝试将 -t 添加到 ssh 命令中,我得到:

Pseudo-terminal will not be allocated because stdin is not a terminal.
Run Code Online (Sandbox Code Playgroud)

我尝试将 -t -t 添加到 ssh 命令中,我得到:

protocol version mismatch -- is your shell clean?
Run Code Online (Sandbox Code Playgroud)

我已经向远程设备上的备份用户添加了一个 .hushlogin 文件,并确认我可以使用远程设备的密钥 ssh 作为备份而没有显示任何内容(登录被隐藏)。我仍然收到这些消息。

请注意,我可以成功地使用密钥 ssh 作为远程设备的备份。

请注意,我的 sudo 没有 -tt 选项。

请注意,以下是在源和目标的 /etc/sudoers 文件中设置的:

backups ALL= NOPASSWD:/usr/bin/rsync
Run Code Online (Sandbox Code Playgroud)

请注意,我的 /etc/sudoers 文件没有任何引用:

Defaults    requiretty
Run Code Online (Sandbox Code Playgroud)

请注意,我不会在命令中回显我的密码。

怎么给这只猫剥皮?:|

谢谢

Lyn*_*ens 7

有时你把事情想得太难了。

远程系统上未安装 Rsync。

/面掌