Gerenciando vários servidores atrás de um firewall com túnel reverso de SSH

1

Eu tenho 10 servidores Ubuntu em diferentes locais, atrás de um firewall cada (local_server_1 a 10). Todos esses servidores estão autorizados a usar o SSH em meu servidor público (vamos chamá-lo de mestre) usando chaves ssh (em outras palavras, suas chaves ssh estão no arquivo authorized_keys do mestre).

Estou tentando criar uma ferramenta que me permita abrir um túnel ssh remotamente. Cada um desses servidores locais executa um script php que pinga meu servidor mestre e retorna um json. Se o json tiver o nome desse servidor, ele executará este comando:

ssh -t -t -R 13337:localhost:22 root@<master_id>

(com exec () do php)

Quando executo este PHP pela linha de comando, o túnel é aberto e posso funcionar corretamente. Quando executo este script PHP usando o crontab OR supervisord, recebo este erro:

Host key verification failed

Alguma ideia de como posso resolvê-lo?

Talvez você tenha uma solução melhor para o problema?

    
por Udi 31.03.2013 / 14:34

1 resposta

2

Você provavelmente está executando o comando no crontab do root (você editou o arquivo crontab no modo de superusuário - por exemplo, você editou o crontab prefixando sudo ?).

Se for esse o caso, as chaves de verificação do host devem estar localizadas no diretório /root/.ssh/ do seu super usuário, em vez do seu.

    
por 31.03.2013 / 14:46