当登录我的云服务器时,我收到以下消息:
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
。然后,可能只需将旧密码和新密码通过管道输入即可。-t
即使 ssh 客户端的 stdin 不是终端,您也需要加倍强制分配 tty:
echo -en 'oldpw\nnewpw\nnewpw\n' | ssh -tt somehost true