无人值守的 rsync 和远程命令

无人值守的 rsync 和远程命令

我正在尝试编写一个脚本,编译一个可执行文件,运行rsync并将其复制到远程服务器,然后ssh在服务器中打开一个会话并将可执行文件发送到网格引擎。

换句话说,我想要一个执行以下操作的脚本:

1. (locally) compile
2. rsync local to remote
3. (remotely) run command to dispatch

我遇到的问题是编译可执行文件需要花费大量时间,现在我的简单 bash 脚本将首先编译,然后提示我输入 rsync 密码并再次输入 SSH 命令。

有没有办法在编译步骤之前以某种方式提示我输入一次密码?出于安全原因,我们不允许使用 SSH 密钥。

答案1

当然,使用sshpass

read -s -p "Password: " SSHPASS
# compile
rsync -e "sshpass -e ssh" ...
sshpass -e ssh <foo> rm -rf /

可以说比使用密钥的安全性更差。

相关内容