Alterar a senha sem qualquer interação, mas não é possível executar comandos sem erros

Alterar a senha sem qualquer interação, mas não é possível executar comandos sem erros

Ao fazer login no meu servidor em 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: 

Preciso automatizar o processo de inserção da senha atual e de inserção da 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 me conectando via SSH em um aplicativo Node.js)

Como posso contornar esse problema? Existe alguma maneira de executar um comando sem receber esse erro para poder alterar a senha?

Responder1

Você pode forçar ssha alocação de um tty com o -tswitch. Então, pode ser possível apenas inserir as senhas antigas e novas. Você precisa dobrar o valor -tpara 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

informação relacionada