Salve o IP no host remoto sempre que a conexão estiver ativa (como usuário não root)

1

Eu tenho um Lan IP local dinâmico no trabalho (temporariamente), mas para se conectar de casa, eu ssh para o host A (IP estático) e de lá para minha máquina.

No entanto, como o IP muda, eu gostaria de salvar no host A com frequência, por exemplo, toda vez que a conexão é ativada (muitas vezes perco minha conexão ethernet devido a cabos ruins).

Estou usando o NetowrkManager, então criei um arquivo em /etc/NetworkManager/dispatcher.d/90exportIP , que executa o seguinte:

 ssh hostA "echo $(date)  enp4s0f2 IP: $(/sbin/ifconfig enp4s0f2 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://') >> todaysElanIP";

Isso obtém meu IP e o salva no arquivo todaysElanIP no host A.

O problema é que este script é executado como root e minhas chaves não estão lá. Eu às vezes apenas executo este comando no bash e funciona. Mas eu gostaria que fosse executado automaticamente toda vez que a rede estivesse funcionando.

Eu tentei runuser -l myUser , mas o ssh-agent não está acessível assim.

Não tem que funcionar todas as vezes. Por exemplo, na hora da inicialização ainda não adicionei minha chave ao ssh-agent. Se da próxima vez que a rede estiver inoperante e, em seguida, novamente a exportação acontecer, isso funcionaria para mim.

É um pouco confuso como posso facilmente fazer algo com um usuário não-root e parece tão difícil quanto root.

    
por Fernando César 10.08.2017 / 12:12

0 respostas