使用密码验证在 Bash 脚本中在远程机器上执行命令

使用密码验证在 Bash 脚本中在远程机器上执行命令

我有一个 bash 脚本,正在 ubuntu:20.04 上执行它。此 bash 脚本需要在远程 Ubunut:20.04 服务器上执行命令。远程计算机的凭据已设置为环境变量。

SSH_HOST=host_ip
SSH_USER=username
SSH_PASSWORD=password

这是 bash 脚本中在远程机器上执行命令的命令。

sshpass -p $SSH_PASSWORD | ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST sudo /root/updates-watcher/update.sh

尽管我在脚本中使用了 sshpass,但我还是不断收到输入密码的提示。我尝试了 sshpass 的所有可用选项,即:-e 环境变量 -p 直接将密码放入命令中 -f 将密码放入文件中

但是我每次尝试时都会收到密码提示。

不要删除我的问题,因为已经有很多类似的问题,相信我,我已经阅读了所有问题,并且对它们的回答都没有用。

答案1

正确的语法是

sshpass -p $SSH_PASSWORD  ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST sudo /root/updates-watcher/update.sh

相关内容