Na minha opinião ssh
é a melhor maneira de fazer isso. Você pode configurá-lo para que você não precise enviar uma senha no momento do login. Você pode copiar a chave ssh local para o servidor para que, quando você enviar o comando ssh, não exija senha. NOTA: Isso funciona com qualquer login no host remoto, incluindo root.
ssh-copy-id user@server
Você alteraria user
no comando acima para qualquer usuário que possa executar o desligamento. Para fazer root, seria ssh-copy-id root@server
.
Quando a cópia do ssh estiver completa, você deverá ser capaz de enviar os comandos sem um login solicitando uma senha.
Em seguida, no seu script ou o que enviar o comando para o servidor remoto, ele será assim:
ssh root@server 'shutdown -h now'
Não haveria senha obrigatória e o servidor seria encerrado.
Espero que isso ajude!