在Linux上从plink.exe执行sudo命令

如果我执行plink命令

plink user@192.168.1.12 sudo nano / etc / hosts

提示时input密码,我越来越

sudo:没有tty present,也没有askpass程序

抱歉,请再试一次。

sudo:没有tty present,也没有askpass程序

抱歉,请再试一次。

sudo:没有tty present,也没有askpass程序

抱歉,请再试一次。

sudo:3个不正确的密码尝试

如何从plink执行sudo命令? 还是有其他的select吗?

Solutions Collecting From Web of "在Linux上从plink.exe执行sudo命令"

我知道这个问题是古老的,但这可以帮助

你可以执行plink(腻子工具)

plink -v -ssh -m“path / to / commands.txt”-l usertologin -pw PASSWORDSERVER

commands.txt中:

echo -e "PASSWORD\n" | sudo -S cat /etc/passwd

sudo -S是从标准输入接收密码和回声-e“密码\ n”是通过密码(和\ n就像按介绍 – 新行)

与执行passwd命令相同的方式:

 > echo -e "OLDPASSWORD\nNEWPASSWORD\nNEWPASSWORD" | passwd 

你为什么在这里使用plink? 一般来说,您可以使用plink在远程主机上调用非交互式脚本。 如果你想做交互式的东西(比如编辑一个文件),只需要ssh到服务器(从你的shell,在Linux上使用'ssh'客户端,或者在Windows上运行putty),然后编辑文件。

关于plink的更多信息,以及一些例子,可以在这里找到: http : //the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter7.html

为什么Plink? 改用SSH。 另外SSH将需要-t选项为sudo命令。 从ssh手册页:

  -t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, eg when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty. 

我需要做一些文件夹和设置烫发。 这些块在PowerShell中为我工作自动化。 谁在那里建议只是希望使用SSH已经发现,目前不是正确的解决方案。 手动过程的减少应该是每个人的目标。

 $null = iex "cmd /c $plinkpath -ssh -l $linuser -pw $linpass $computername `"echo $linpass | sudo -S mkdir $puppetfolder`"" *>&1 $null = iex "cmd /c $plinkpath -ssh -l $linuser -pw $linpass $computername `"echo $linpass | sudo -S chmod o+wx $puppetfolder`"" *>&1