faça login no “front end gui” do ssh (junto com o Synergy)

1

Então, eu tenho 3PC na minha mesa, todos executando ubuntu 14.04 64bit . e todos executando a versão mais recente do Synergy , para que eu use apenas um keyoard e um mouse para controlar 3 PCs e 4 monitores. isso funciona muito bem! mas um problema.

sempre que faço login (desbloqueio), preciso fazer login 3 vezes. e toda vez que eu tranco o computador eu tenho que travar 3 vezes. (bem, eu tenho que bloquear, e logar em cada um dos 3 PCs individualmente).

até agora synergy não tem um sistema para isso em seu código, mas eu estava pensando que talvez eu possa resolver isso com um script ssh? Alguém tem alguma idéia de como eu poderia fazer isso? é mesmo possível?

edit: Eu tenho uma dica, no comentário abaixo, e tentei algumas coisas (veja minha própria resposta, sobre o que tentei até agora), este problema ainda não está resolvido, então por favor leia minha própria resposta abaixo, e veja se talvez você possa me ajudar a descobrir por que isso não funciona, ou talvez chegar a uma solução totalmente diferente.

    
por Sverre 03.10.2014 / 09:07

1 resposta

3

Eu ainda não fiz este trabalho, mas eu queria adicionar o que tentei e como ele falhou até agora, caso isso faça alguém ver o que estou fazendo de errado.

tudo é baseado no comentário de c0rp , via este link (obrigado)

Eu criei dois arquivos de script bash como este:

1) /sbin/my_loginscript.sh (usado para "fazer login" e abrir dois computadores)

#!/bin/bash          
# 
# Script to loging to my other computers when I login, save some time
#
echo "UNLocking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
echo "Now get some back to work" 

2) /sbin/my_logoutscript.sh (usado para "sair" e fechar dois computadores)

#!/bin/bash          
# 
# Script to loging to my other computers when I login, save some time
#
echo "Locking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
echo "Now get some rest"

Esses dois scripts funcionam bastante bem, e quando os executo diretamente, os dois computadores desktop adicionais "abrem e fecham" e eu posso usar synergy para controlá-los, isso por si só é muito mais rápido do que fazer login manualmente nos dois computadores extras.

Agora eu tento automatizar isso, e é aí que eu tenho problemas.

quando eu faço login no computador (tenho que sair para que isso funcione)

Eu criei um novo arquivo '/etc/xdg/autostart/my_script.desktop'

parece com isso:

[Desktop Entry]
Type=Application
Name=global login
Exec=sudo /sbin/my_loginscript.sh
Icon=system-run
X-GNOME-Autostart-enabled=true

e isso realmente funciona ... quando eu faço login, as outras duas telas são desbloqueadas como eu quero.

Todo: como fechá-lo quando eu sair?

mas também, eu quase nunca saio do meu PC, eu só LOCK e UNLOCK , então é isso que eu realmente quero consertar, e é assim que eu tentei.

Eu criei um novo arquivo chamado '/etc/pm/sleep.d/99_resume.sh'

e é assim:

#!/bin/bash

case "" in
thaw|resume)
    /sbin/my_loginscript.sh 2> /var/log/wakeup.log
    ;;
suspend|hibernate)
    /sbin/my_logoutscript.sh 2> /var/log/wakeup.log
    ;;
esac

mas isso não parece funcionar, e eu tenho dificuldade em solucionar o problema. se alguém tiver alguma sugestão ou dicas aqui, isso seria muito bom.

edit: Baseado no comentário do C0rp abaixo, eu editei o seu script, e ele pode ser encontrado (editado) aqui :

basicamente depois de clonar ou criar o arquivo event_catcher.sh , primeiro copie meus dois arquivos my_logoutscript.sh and my_logoutscript.sh as described earlier, to the / sbin folder. Then start the daemon by running this . / event_catcher.sh start '.

da próxima vez que você acessar Ctrl Alt L , seu computador será bloqueado e seus outros PCs também serão bloqueados.

PS: Eu assumi que você usa ssh-copy-id para habilitar o login nesses computadores sem a senha.

então, eu considero a questão resolvida agora, mas vou esperar um pouco para c0rp para ver se ele quer criar uma resposta muito rápida (ao invés de apenas comentários), e se ele fizer isso Eu lhe darei o crédito. Obrigado novamente c0rp!

    
por Sverre 09.10.2014 / 11:17