O problema com a execução de comandos como gnome-screensaver-command
de uma sessão SSH é geralmente que eles não se conectam automaticamente ao barramento de sessão apropriado para a sessão ativa da área de trabalho - geralmente, configurar a variável DISPLAY corrigirá isso, por exemplo para mim (logado via SSH como o mesmo usuário que possui a sessão X bloqueada, que está em DISPLAY: 0):
$ DISPLAY=:0 gnome-screensaver-command -d
para desbloquear e
$ DISPLAY=:0 gnome-screensaver-command -l
para bloquear.
Alternativamente, você pode alternar o estado ativo usando dbus-send
- por exemplo
$ export DISPLAY=:0
$ dbus-send --session \
--dest=org.gnome.ScreenSaver \
--type=method_call \
--print-reply \
--reply-timeout=20000 \
/org/gnome/ScreenSaver \
org.gnome.ScreenSaver.SetActive \
boolean:false
Fonte: link