我正在尝试编写一个脚本,编译一个可执行文件,运行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 /
可以说比使用密钥的安全性更差。