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