Altere a senha sem qualquer interação, mas não pode executar comandos sem erro

1

Ao fazer login no meu servidor de nuvem, recebo esta mensagem:

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user.
(current) UNIX password: 

Eu preciso automatizar o processo de inserir a senha atual e inserir a nova senha depois disso.

No entanto, toda vez que tento executar um comando, recebo um erro dizendo WARNING: Your password has expired.\nPassword change required but no TTY available. (estou conectando via SSH em um aplicativo Node.js)

Como posso contornar este problema? Existe alguma maneira eu posso executar um comando sem receber esse erro para que eu possa mudar a senha?

    
por samjmckenzie 22.04.2017 / 21:01

1 resposta

1

Você pode forçar o ssh a alocar um tty com a opção -t . Então, pode ser possível apenas canalizar as antigas e novas senhas para dentro. Você precisa dobrar o -t para forçar a alocação de um tty mesmo quando o stdin do cliente ssh não for um terminal:

echo -en 'oldpw\nnewpw\nnewpw\n' | ssh -tt somehost true
    
por 24.04.2017 / 11:24

Tags