正确的方式来通过SSH SSH

我有一个脚本,使用sudo在远程服务器上通过SSH运行另一个脚本。 但是,当我input密码时,它显示在terminal上。 (否则它工作正常)

ssh user@server "sudo script" 

什么是正确的方法来做到这一点,所以我可以通过SSHinputsudo的密码,而无需input密码?

另一种方法是使用-t开关到ssh

 ssh -t user@server "sudo script" 

请参阅http://linuxcommand.org/man_pages/ssh1.html

  -t Force pseudo-tty allocation. This can be used to execute arbi- trary 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. 

目标机器上configuration中的NOPASS是解决scheme。 继续阅读http://maestric.com/doc/unix/ubuntu_sudo_without_password

最好的方法是ssh -t user@server "sudo <scriptname>" ,例如ssh -t user@server "sudo reboot" 。 它会提示input用户名,然后是root用户的密码(因为我们正在运行具有root权限的脚本或命令。

我希望这有助于消除你的疑虑。

根据您的使用情况,我取得了以下成绩:

 ssh root@server "script" 

这将提示inputroot密码,然后正确执行命令。