What is the proper way to sudo over SSH?

I have a script which runs another script via SSH on a remote server using sudo. However, when I type the password, it shows up on the terminal. Otherwise it works fine.

ssh user@server "sudo script"

What's the proper way to do this so I can type the password for sudo over SSH without the password appearing as I type?


  • Another way is to use the -t open for ssh:

    ssh -t user@server "sudo script"

    See man ssh:

     -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, e.g., when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.