
한 서버에서 다른 서버로 쉘 스크립트를 전송하는 스크립트가 있습니다. 전송된 스크립트는 내 사용자의 비밀번호를 변경합니다. 스크립트를 전송할 수 있었지만 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
도움을 주셔서 미리 감사드립니다!