Cambie la contraseña sin ninguna interacción pero no pueda ejecutar comandos sin error

Cambie la contraseña sin ninguna interacción pero no pueda ejecutar comandos sin error

Al iniciar sesión en mi servidor en la nube, recibo este mensaje:

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

Necesito automatizar el proceso de ingresar la contraseña actual y luego ingresar la nueva contraseña.

Sin embargo, cada vez que intento ejecutar un comando aparece un error que dice WARNING: Your password has expired.\nPassword change required but no TTY available.(me estoy conectando a través de SSH en una aplicación Node.js)

¿Cómo puedo solucionar este problema? ¿Hay alguna forma de ejecutar un comando sin recibir ese error para poder cambiar la contraseña?

Respuesta1

Puede forzar sshla asignación de un tty con el -tinterruptor. Entonces, podría ser posible simplemente introducir las contraseñas antiguas y nuevas. Debe duplicar para -tforzar la asignación de un tty incluso cuando la entrada estándar del cliente ssh no sea una terminal:

echo -en 'oldpw\nnewpw\nnewpw\n' | ssh -tt somehost true

información relacionada