Este escenario tendría dos instancias en las que se pediría una contraseña. Una en la máquina local para conectarse a la máquina remota y otra en la máquina remota para ejecutar el comando. En la máquina local simplemente necesitas establecer una clave ssh en tu máquina local e instalarla en la máquina remota. Aquí hay un gran artículo sobre cómo hacerlo: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 .
En la máquina remota tendría que añadir un usuario al grupo sudo o wheel y luego configurar el grupo wheel para que ejecute comandos sudo sin pedir una contraseña. Para ello, inicie sesión en la máquina remota y ejecute sudo visudo
y editar el archivo sudoers.
Hay varias maneras de hacerlo. Puedes cambiar a nivel de grupo o a nivel de usuario. El grupo sudo admin por defecto en el mac es wheel así
%wheel ALL=(ALL) NOPASSWD:ALL
Entonces tendrías que ejecutar el script en la máquina remota usando sudo por un usuario del grupo wheel y no debería pedir la contraseña.
Para hacerlo sólo a nivel de usuario, sustituya %wheel
con sólo el nombre de usuario. Tenga en cuenta que este usuario (o todos los usuarios en el grupo de la rueda) a partir de este punto será capaz de ejecutar comandos como Root sin una contraseña. No sería mala idea crear un usuario para este script y luego darle sólo la capacidad de ejecutar el comando shutdown. Para esto, reemplaza el último ALL con la ruta del comando...en tu caso /sbin/shutdown