Usando o comando notify-send com uma conexão ssh não interativa

1

Eu quero poder usar notify-send para enviar mensagens pop-up de um servidor para ser exibido em outro.

Tenho certeza de que isso é possível com o SSH, mas como posso automatizá-lo para um comando de uma linha que não me pede uma senha para que eu possa incluí-lo em um script?

    
por nish 27.01.2014 / 08:55

2 respostas

1

Uma maneira de fazer isso seria usar a autenticação baseada em chave para a conexão ssh.

No computador de envio, crie um par de chaves ssh público / privado:

ssh-keygen -f .ssh/notify-key -C "notify-send SSH key" -b 2048 -t rsa 

O programa pedirá uma senha; simplesmente aperte enter duas vezes para criar uma chave SSH sem uma frase secreta.

Isso gerará um par de arquivos, notify-key e notify-key.pub . Copie a chave pública para o servidor de recebimento via ssh-copy-id -i .ssh/notify-key foo@receiver

OBSERVAÇÃO Isso permitirá que qualquer pessoa que tenha acesso a notify-key faça login em receiver com suas credenciais de usuário e nenhuma verificação de senha, o que é um pouco mais de acesso do que você provavelmente deseja. feche um pouco.

Em receiver , edite ~foo/.ssh/authorized_keys ; você verá uma linha dizendo algo como

ssh-rsa AAAAB3NzaC1kc3MAAACBAP6Mmqm+ylUEQa+NRassh-dss AAAAB3NzaC1kc3MAAACBAP6Mmqm+ylUEQa+NRa {.......} MuieClE1nhb33EgQ== notify-send SSH key

Para apertar isso, altere a linha para adicionar o seguinte:

no-pty,no-port-forwarding,no-X11-forwarding from=sender ssh-rsa AAAAB3Nz... 

Isso evitará que essa chave específica seja usada para encaminhamento de porta, encaminhamento X11, PTYs (como um shell de login útil) ou seja usado em qualquer lugar diferente de sender .

Depois de ter isso, você deve conseguir executar o comando

ssh -i ~/.ssh/notify-key foo@receiver notify-send "Can you see this?"

e usá-lo em scripts, desde que o ID do usuário que está executando o script tenha acesso de leitura a notify-key . Eu recomendo que você defina seus direitos de acesso para 0600 e armazene em algum lugar seguro.

    
por 27.01.2014 / 09:55
0

Para usar o acesso sem senha, gere um par de chaves público-privado ( ssh-keygen seguido por vários Enter s somente e copie a chave pública para o host com ssh-copy-id user@host .

Depois disso, você pode apenas fazer um forro:

ssh user@host some commandline to run on the host to send messages

e some commandline to run on the host to send messages serão executado no host.

    
por 27.01.2014 / 09:41