我有一个脚本,可以将 shell 脚本从一台服务器传输到另一台服务器。传输的脚本将更改我的用户的密码。我能够传输脚本,但无法使用 ssh 执行它。这是我的脚本:
#!/bin/sh
USERNAME=my_user
HOSTS="some.thing.host"
SCRIPT="/bin/sh /home/admin/my_user/tryscp.sh"
PASSWORDS=("init")
for HOSTNAME in ${HOSTS} ; do
/usr/local/bin/sshpass -p ${PASSWORDS[i]} scp /home/my_user/tryscp.sh [email protected]:/home/admin/my_user
/usr/local/bin/sshpass -p ${PASSWORDS[i]} ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done
scp 部分可以正常工作,但远程服务器上执行脚本的 ssh 却无法正常工作。我收到此错误:
"/bin/sh" isn't allowed to be executed.
通过ssh远程执行的脚本内容如下:
#!/bin/sh
sudo -S echo -e "old_password\nnew_password\nnew_password" | passwd
在此先感谢您的帮助!