从 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]
我正在尝试 运行 使用 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。您必须找到其他方式来执行这些特权指令。例如,您可以使用基于密钥的身份验证。
sudo
需要 TTY/interactive 个会话。
相反,PuTTY/Plink -m
开关默认使用非交互式会话。
使用 -t
switch 覆盖它。
putty.exe -ssh [IP] -l [user] -pw [password] -t -m [Script]