何もせずにパスワードを変更できるが、エラーなしでコマンドを実行できない

何もせずにパスワードを変更できるが、エラーなしでコマンドを実行できない

クラウド サーバーにログインすると、次のメッセージが表示されます。

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

現在のパスワードを入力し、その後に新しいパスワードを入力するプロセスを自動化する必要があります。

しかし、コマンドを実行しようとするたびに、WARNING: Your password has expired.\nPassword change required but no TTY available.「Node.js アプリで SSH 経由で接続しています」というエラーが表示されます。

この問題を回避するにはどうすればよいですか? エラーが表示されずにコマンドを実行してパスワードを変更する方法はありますか?

答え1

sshスイッチを使用して tty を強制的に割り当てることができます-t。その後、古いパスワードと新しいパスワードをパイプで入力するだけで済む可能性があります。ssh-tクライアントの stdin が端末でない場合でも tty を強制的に割り当てるためには、を2 倍にする必要があります。

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

関連情報