从plink.exe在windows上执行sudo命令[windows]

时间:2013-11-27 16:35:10

标签: linux windows bash ubuntu putty

如果我执行plink命令

  

plink user@192.168.1.12 sudo nano / etc / hosts

在提示时输入密码,我正在

  

sudo:没有tty存在且没有指定askpass程序

     

抱歉,请再试一次。

     

sudo:没有tty存在且没有指定askpass程序

     

抱歉,请再试一次。

     

sudo:没有tty存在且没有指定askpass程序

     

抱歉,请再试一次。

     

sudo:3次密码尝试错误

如何从plink执行sudo命令?或者有其他选择吗?

4 个答案:

答案 0 :(得分:9)

我知道这个问题很老但这可以帮助

你可以执行plink(putty tools)

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是从stdin接收密码并且使用echo -e“password \ n”来传递密码(并且\ n就像按下intro -new行 - )

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

为什么选择Plink?改用SSH。对于-t命令,SSH还需要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, e.g. when implementing menu services.  Multiple -t options force tty
         allocation, even if ssh has no local tty.

答案 3 :(得分:-1)

我需要制作一些文件夹并设置烫发。这些块在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