Como posso alterar a senha do root usando sudo por SSH?

4

Estou tentando redefinir a senha do root por meio do SSH, usando o sudo, pois o login direto como root está desativado.

Estou usando o comando abaixo para redefinir a senha:

sshpass -f .pass ssh kj@server2 'bash -s' < password.sh

Ao executar isso, sou solicitado pela senha do sudo e está com falha.

password.sh tem o conteúdo abaixo.

MYPASS=abcd@123

echo $MYPASS | sudo -kS bash -c 'echo passwd | passwd root --stdin'

Como posso redefinir a senha com êxito usando SSH e sudo?

    
por KumarJohn 10.11.2016 / 07:09

3 respostas

1

Você provavelmente poderia conseguir isso escrevendo algo assim:

ssh user@machine 'sudo passwd' << END
<password>
<password>
END

Além disso, gostaria de recomendar que você use certificados, em vez de senhas, para fazer login em suas máquinas, pois isso facilitaria procedimentos como esse

    
por 14.11.2016 / 08:39
0

Caracteres como $"\' in $MYPASS talvez estejam sendo expandidos pelo bash e, portanto, a senha enviada para o sudo não seria o que você espera que seja.

Para imprimir uma string literalmente sem expansão bash use printf '%s\n' "$1"

sshpass -f "$SSH_PASS" ssh -t -l "$SSH_USER" -p "$SSH_PORT" "$SERVER" \
    "printf '%s\n' \"root:$PASSWORD\" | sudo chpasswd -c SHA512"
    
por 10.11.2016 / 09:24
0

Consegui resolver isso executando o comando abaixo:

sshpass -f .pass ssh kj@server2 "echo abcd@123 | sudo -kS bash -c 'echo passwd | passwd root --stdin'"

Se houver uma solução melhor, eu gostaria de receber suas sugestões.

    
por 10.11.2016 / 17:49