如果我执行plink命令
plink user@192.168.1.12 sudo nano / etc / hosts
在提示时输入密码,我正在
sudo:没有tty存在且没有指定askpass程序
抱歉,请再试一次。
sudo:没有tty存在且没有指定askpass程序
抱歉,请再试一次。
sudo:没有tty存在且没有指定askpass程序
抱歉,请再试一次。
sudo:3次密码尝试错误
如何从plink执行sudo命令?或者有其他选择吗?
答案 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