Abrir um site em todos os computadores da sua rede a partir do seu

No dia a dia de trabalho muitos professores me pedem para deixar um determinado site aberto com atividades para os alunos, em alguns casos 3 sites. O principal motivo dos professor solicitarem isso são:

  • Internet lenta – Se todos os alunos acessarem um site ao mesmo tempo a aula acaba e a página não abriu em todos os computadores.
  • Alunos dos Anos Inicias – Estão conhecendo o computador e precisam de uma ajuda inicial
  • Melhor aproveitamento do tempo – Os alunos chegam no laboratório e já podem começar as atividades.

Claro que isso vai gerar problemas se isto virar rotina, afinal, os alunos precisam aprender a localizar o que precisam com palavras chaves nos sites de busca.

Para automatizar este processo precisamos fixar o IP nos computadores que serão acessados remotamente, instalar o ssh, gerar uma chave de acesso e criar um script que execute os comandos necessários para abrir os sites.

1 – Fixando o IP nos computadores

O processo é simples, para fixar o IP no computador basta editar sua conexão de rede clicando no ícone que aparece perto do relógio na barra de tarefas, e depois clique em gerenciar conexões ( Logado como professor). Veja a Imagem abaixo: (LE4 – Linux Educacional 4)

fixar_ip1

Selecione a aba com fio ou sem fio, depende da sua rede na escola. Depois clique no Botão Editar, vai aparecer a tela abaixo:

IP_fixo2

Clique na Aba Endereço IP, Em Method selecione Manual e configure de acordo com a sua rede. Aqui é famoso 10.1.1.x do Dlink. (Para outras distros o processo é semelhante, estas imagens que postei são da escola que trabalhei no ano passado, neste ano não tenho mais multiterminal com o Linux Educacional 4  daqui para frente as caputras de tela serão feitas no Lubuntu).

2 – Instalando o ssh

O LE4 já tem o ssh instalado, se você tem outra distro derivada do Ubuntu o comando a ser digitado no terminal é:

sudo apt-get install ssh

OBS: Por padrão o ssh não aceita login sem senha, defina uma senha nos usuários aluno1 e aluno2 para prosseguir.

3 – Gerando a chave de acesso

Com a conta professor abra o terminal (não vire usuário root).
Digite:

ssh-keygen -t rsa
 keygen1

Tecle Enter
Você vai receber a seguinte mensagem:

Enter passphrase (empty for no passphrase):

Deixe a senha em branco, apenas tecle Enter. Confirme com Enter novamente.
keygen2
Pronto a chave foi criada no diretório /home/professor/.ssh/

Agora vamos copiar esta chave de acesso para os computadores que serão acessados remotamente, use este comando:

ssh-copy-id -i /home/professor/.ssh/id_rsa.pub aluno1@IP_DO_Computador.
keygen3

Digite a senha do usuário aluno, você vai receber esta mensagem
key4Com a chave copiada você não precisará digitar a senha novamente.
Repita estes dois últimos passos com todos os usuários do computador, lembrando que em computadores com multiterminal há pelo menos dois usuários (aluno1 e aluno2). Então para cada computador serão duas chaves, os comandos deverão ficar assim em cada computador:

ssh-copy-id -i /home/professor/.ssh/id_rsa.pub aluno1@192.168.0.6
ssh-copy-id -i /home/professor/.ssh/id_rsa.pub aluno2@192.168.0.6

O que muda é o usuário e não o IP.

Depois que você inseriu as chaves de acesso poderá excluir a senha dos usuário com o comando:

sudo passwd -d Nome_do_Usuário
Algumas Distros não aceitam login de usuários sem ter uma senha, mas é possível deixar a senha e configurar para não exigir a senha ao efetuar o login pela interface gráfica.

4 – Abrindo o navegador Web em um determinado site remotamente

Se tudo correu bem podemos fazer um teste com este comando:

ssh usuário@IP_do_Computador DISPLAY=:0 firefox http://www.uol.com.br

Onde:

  • ssh – Tipo de acesso
  • usuário@IP_do_Computador – Computador e usuário que será aberto o navegador de internet
  • DISPLAY=:0 – É o Hardware, o monitor em que será carregado o navegador web. Dependendo da Distro estes números podem mudar, pode ser DISPLAY=:0, DISPLAY=:1, DISPLAY=:2 e por aí vai, para ter certeza sobre o número que tem na variável DISPLAY vamos escrevê-lo na tela usando o terminal com o comando echo $DISPLAY.
    OBS: 
    este comando tem que ser executado do próprio monitor.
  • firefox http://www.uol.com.br – Navegador Firefox carregando o site UOL

Agora podemos criar um script para automatizar o processo, use um editor de texto simples semelhante ao bloco de notas do Windows, copie e cole

#! /bin/bash
for i in {02..14} # incrementa a variável i conforme os Ips da sua rede.
do
echo "Acessando o computador com ip 192.168.0.$i" # uma simples mensagem dizendo qual computador irá acessar 
# $i é a variável.
ssh -o ConnectTimeout=5 aluno1@192.168.0.$i DISPLAY=:0 nohup firefox http://www.uol.com.br &
# ConnectTimeout=5 se o computador não responder em 5 segundos ele irá para o próximo
# nohup & a sessão será encerrada e manterá o firefox aberto.
# Após o http:// coloque o site que desejar.
sleep 20 # Espera 20 segundos antes de abrir o navegador no próximo display
ssh -o ConnectTimeout=5 aluno2@192.168.0.$i DISPLAY=:2 nohup firefox http://www.uol.com.br &
sleep 20
done

Salve o arquivo.
Abra o terminal e vá para o diretório onde você salvou o arquivo
Vamos dar permissão de execução para o arquivo com o seguinte comando:

sudo chmod +x Nome_do_seu_arquivo.

Para executá-lo digite o comando:

sudo ./ Nome_do_seu_arquivo

Agora fica fácil, sempre que precisar abrir um determinado site basta editar o seu script e alterar apenas o site. Uma dica que deixo é configurar o autologin que você encontra no tutorial do Laércio de Souza. Com o autologin configurado vai garantir que o navegador de internet seja aberto no monitor correto, ou seja DISPLAY:=0 para aluno1 e DISPLAY:=2 para aluno2, com o login manual o aluno1 poderá logar no DISPLAY:=2 e o aluno2 no DISPLAY:=0, e, o seu script pode estar configurado ao contrário, ele vai funcionar mas o problema é que se o usuário fechar o navegador não vai conseguir abrir denovo,  aparecerá uma mensagem em inglês dizendo que o navegador já está sendo executado, exatamente igual ao aluno apressado que clica 20 vezes no ícone do navegador e aparecem várias destas mensagens.

Espero que facilite a vida de vocês assim como facilitou a minha.

Referências que pesquisei

http://viniciusmuniz.com/usando-ssh-sem-senha/
http://tutorfreebr.blogspot.com.br/2011/11/abrir-sites-pelo-terminal.html
https://www.ibm.com/developerworks/community/blogs/752a690f-8e93-4948-b7a3-c060117e8665/entry/b_C3_AA__C3_A1_b_C3_A1_do_ssh_parte_6_x_remoto10?lang=en
https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=pt-BR&ie=UTF8&prev=_t&rurl=translate.google.com.br&sl=en&tl=pt-BR&u=http://vanemery.com/Linux/XoverSSH/X-over-SSH2.html&usg=ALkJrhh1Bq4maAaT1etgJjxrcPjmLDNTdQ
http://legauss.blogspot.com.br/2012/07/ssh-dicas-truques-e-um-tutorial-sobre-o.html

1 pensamento em “Abrir um site em todos os computadores da sua rede a partir do seu”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *