Executar um script remotamente via ssh
Dica publicada em PHP / Rede
Executar um script remotamente via ssh
Em um servidor proxy autenticado eu estava precisando fazer que através de uma página em PHP pudesse bloquear e desbloquear o acesso a internet nos laboratórios de informática de onde trabalho.
Tenho um servidor web em outra máquina e para que não fosse preciso instalar o apache no servidor proxy, fiz uma página de controle no servidor web executando um shell script no servidor proxy.
Primeiramente fiz o servidor web autenticar via ssh sem senha no servidor proxy. Usei este artigo:
Você tem que fazer isso com o usuário que está executando o apache. Se quiser alterar o usuário que executa o apache faça o seguinte:
# vim /etc/apache2/apache2.conf
Altere as linhas:
#User www-data
#Group www-data
Para:
Cuidado com as permissões, após isso suas páginas web neste servidor terão que ser alteradas para este usuário.
Na página de controle PHP, o comando para execução remota é:
#1
Comentário enviado por mvenzi em 04/12/2008 - 16:02h
Tenho um servidor web em outra máquina e para que não fosse preciso instalar o apache no servidor proxy, fiz uma página de controle no servidor web executando um shell script no servidor proxy.
Primeiramente fiz o servidor web autenticar via ssh sem senha no servidor proxy. Usei este artigo:
Você tem que fazer isso com o usuário que está executando o apache. Se quiser alterar o usuário que executa o apache faça o seguinte:
# vim /etc/apache2/apache2.conf
Altere as linhas:
#User www-data
#Group www-data
Para:
User [usuário]
Group [grupo_do_usuário]
Group [grupo_do_usuário]
Cuidado com as permissões, após isso suas páginas web neste servidor terão que ser alteradas para este usuário.
Na página de controle PHP, o comando para execução remota é:
<?php
shell_exec('/ssh user@ip.do.servidor.proxy "sh /home/user/laboratorios/bloqueia.sh"');
e
shell_exec('/ssh user@ip.do.servidor.proxy "sh /home/user/laboratorios/desbloqueia.sh"');
?>
Usei GNU/Linux Debian 4.0.
shell_exec('/ssh user@ip.do.servidor.proxy "sh /home/user/laboratorios/bloqueia.sh"');
e
shell_exec('/ssh user@ip.do.servidor.proxy "sh /home/user/laboratorios/desbloqueia.sh"');
?>
Usei GNU/Linux Debian 4.0.
Outras dicas deste autor
Site para montar regras de iptables
Comos usuários leigos podem configurar seu proxy autenticado
Resolvendo problema de NO_PUBKEY no Debian 4 para o Xenserver 5
Leitura recomendada
Se o LAMP (Linux, Apache, MySQL e PHP) não funcionar no Debian
Servidor Apache 2 no Ubuntu 14.04 - Erro 404 [Resolvido]
[Resolvido] Monitoramento CACTI com SPINE
Comentários
gostei mas aqui no meu trabalho os usuários tem senha.