
クラウド サーバーにログインすると、次のメッセージが表示されます。
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