Como posso executar um comando na conexão ethernet bem-sucedida no Arch?

1

Eu tenho um Raspberry Pi executando o ArchARM e gostaria de fazer um túnel SSH reverso assim que ele se conecta à rede via ethernet.

Eu fiz um script de shell executável ( +x ) em /usr/bin , e gostaria que isso fosse executado sempre que o gerenciador de rede padrão adquirisse um IP na interface eth0.

Como alternativa, qual é a melhor maneira de fazer isso sem um túnel SSH ou abrir uma porta no meu roteador?

    
por tekknolagi 01.06.2013 / 07:46

1 resposta

2

você pode fazer um SSH reverso com o -R arg (eu escrevi um artigo em francês sobre isso aqui ) e cron ou fazer um serviço com.

aqui as coisas traduzidas

user@mynewRaspberry :~$ ssh -R 61337:localhost:22 [email protected] 

depois que você pode acessá-lo de outro lugar, aqui no exemplo de z8po.dyndns.info

z8po@hive :~$ ssh z8po.dyndns.info -p 61337

Em seguida, vamos usar um while loop no seu script para verificar se o ssh é para sempre o relançamento.

while true do ssh -R 61337:localhost:22 [email protected] done

você pode manter sua conexão com um keep alive em um cliente ssh ou em um servidor, adicionar a / etc / ssh / sshd_config ou ~ / .ssh / config a seguinte linha

 ClientAliveInterval 60

Não se esqueça de usar a chave rsa insteed de paswsrod para login automático sem prompt, ou se você realmente quiser usar senha, mude o comando ssh com user: password @ ip mas é bem menos seguro.

Primeiro método Cron it

faça um script verificando se já foi iniciado, em /home/USER/autolauncher.sh

#!/bin/sh
if ps -ef | grep -v grep | grep yourscript.sh ; then
        exit 0
else
        while true do ssh -R 61337:localhost:22 [email protected] done
        exit 0
fi

e edite seu crontab

crontab -e

adicione depois dos outros jobs crons; a cada 5 min inicie o script anterior (que não funcionará se já estiver em execução)

   */5 * * * * /home/USER/autolauncher.sh

Segundo método: serviço na inicialização

crie ou copie o script no init.d adicione os comandos nele usando o vi:

  sudo nano /etc/init.d/autolauncher.sh

torne-o executável

  sudo chmod +x /etc/init.d/autolauncher.sh

update-rc.d para criar e configurar o início:

  sudo update-rc.d autolauncher.sh defaults

agora você tem dois métodos para fazer seu rasperry tentando se conectar

    
por 01.06.2013 / 11:24