无需任何交互即可更改密码,但无法无错误地运行命令

无需任何交互即可更改密码,但无法无错误地运行命令

当登录我的云服务器时,我收到以下消息:

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

相关内容