如何在远程服务器上发出命令时允许输入密码?

mpe*_*pen 3 ssh freebsd sh su

这是我的脚本:

#!/bin/sh

if [ $# -lt 1 ]; then
    echo "Usage: $0 SERVER"
    exit 255
fi

ssh $1 'su;apachectl restart'
Run Code Online (Sandbox Code Playgroud)

我只是想让它登录到服务器并重新启动apache,但它需要超级用户权限来执行此操作.但是,在它发出su命令后它不会停止并等待我输入我的密码.我可以这样做吗?

Cur*_*ous 5

看看这是否适合你!此解决方案在执行SSH之前获取密码,但...

#!/bin/sh
if [ $# -lt 1 ]; then
    echo "Usage: $0 SERVER"
    exit 255
fi
read -s -p "Password: " PASSWORD
ssh $1 'echo $PASSWORD>su;apachectl restart'
Run Code Online (Sandbox Code Playgroud)

该-s选项可防止在从用户读取密码时回显密码.