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