É possível desligar computadores remotos sem inserir a senha?

1

Eu usei o seguinte bash para desligar computadores remotos, mas para cada computador, devo inserir a senha para ele. É possível inserir a senha automaticamente?

#!/bin/bash

ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
ssh -t [email protected] "sudo poweroff"
    
por sunpy 04.07.2013 / 16:40

2 respostas

2

Você não precisa. Como você está efetuando logon como root , não há absolutamente nenhum motivo para usar sudo , apenas execute poweroff ou (melhor) shutdown -h diretamente.

Se por alguma razão não explicada na sua pergunta você realmente precisar de sudo , use a opção sudo -S . De man sudo :

   -S          The -S (stdin) option causes sudo to read
               the password from the standard input
               instead of the terminal device.  The
               password must be followed by a newline
               character.

Por exemplo:

#!/bin/bash

ssh -t [email protected] "echo PASSWORD1 | sudo -S poweroff"
ssh -t [email protected] "echo PASSWORD2 | sudo -S poweroff"
    
por 04.07.2013 / 16:44
2

Para evitar a inserção de senhas, use ssh-keygen para criar e carregar a chave de autenticação chave pública para todos os seus servidores. BTW, terdon certo, se você root não use sudo .

ssh [email protected] poweroff
ssh [email protected] poweroff
    
por 04.07.2013 / 18:31

Tags