从 PuTTY 命令行执行时 "Sudo" 失败并显示 "sudo requires a tty"

"Sudo" fails with "sudo requires a tty" when executed from PuTTY command line

我正在尝试 运行 使用 PuTTY 在远程 CentOS 机器上执行一些命令。我正在使用以下命令:

putty.exe -ssh [IP] -l [user] -pw [password] -m [Script]

其中 [Script] 是一个包含我想要 运行 命令的 .txt 文件。问题是其中一个命令需要 sudo,当 PuTTY 尝试 运行 时,我得到一个错误:

sudo requires a tty

让我感到困惑的是,如果我在没有提供脚本的情况下启动会话,然后 运行 手动从脚本中输入命令,它就可以正常工作。我试过使用 -load 而不是 -ssh,但没有任何区别。

出于安全原因,我无法更改 sudoers 文件中的 requiretty 设置,这是我能够找到的唯一解决方案。还有其他选择吗?

读取错误:sudo requires a tty。也就是一个交互式的shell。您必须找到其他方式来执行这些特权指令。例如,您可以使用基于密钥的身份验证。

以 root 身份登录

sudo 需要 TTY/interactive 个会话。

相反,PuTTY/Plink -m 开关默认使用非交互式会话。

使用 -t switch 覆盖它。

putty.exe -ssh [IP] -l [user] -pw [password] -t -m [Script]