Usando "&" y "|" en el script SSHPass

Estoy creando un script para mis padres en sus Mac para que puedan usar SSH en mi computadora con Linux y enviar comandos, crear ventanas emergentes, etc.

Este es uno de mis comandos:

sshpass -p Password ssh maliciouzzhd@10.0.0.1 export DISPLAY=:0 & mate-session-save --force-logout

Mi problema es que la Mac trata el "&" como si no estuviera en el script sshpass y ejecuta el argumento después de usar la terminal Mac, sin SSH.

Entonces

sshpass -p Password ssh maliciouzzhd@10.0.0.1 export DISPLAY=:0 & mate-session-save --force-logout

ejecutaría

export DISPLAY=:0

en la sesión SSH, pero

mate-session-save --force-logout

se ejecutaría en la terminal Mac.

Si alguien pudiera ayudarme con esto, sería muy apreciado.

Respuestas (1)

SSH acepta un único argumento como comando, no varios, por lo que la línea de comando debería verse así (tenga en cuenta las comillas):

sshpass -p Password ssh maliciouzzhd@10.0.0.1 "export DISPLAY=:0 & mate-session-save --force-logout"

Pero la idea general podría no funcionar, porque no permitió el reenvío X11 (agregue -Yel interruptor al ssh).

Gracias, funciona, pero ahora diceUnable to init server: Could not connect: Connection refused
¿Tienes el servidor X instalado en tu mac?
¿Cómo verifico? No estoy acostumbrado a Mac, son mis padres.
support.apple.com/en-us/HT201341 : debe instalar XQuartz manualmente
Espera... Estoy tratando de controlar mi computadora portátil Linux a través de SSH desde mi Mac, ¿necesito XQuartz en mi Mac también? Mi Linux definitivamente tiene cosas de XServer.
Sí, necesita el servidor X en la Mac, si desea mostrar ventanas desde su sistema Linux.